php - 在 Laravel 6 中进行插入的最佳方法
问题描述
我实际上是在尝试在 Laravel 应用程序中插入,但我不知道该怎么做。我有两行不同的代码。一行调用模型($reservation = (new \App\Reservation)->create($form_data);
),另一行直接插入数据库(DB::table('reservations')->insert([
'numero_semaine' => $request->nombreSemaine,
'date' => $request->dateReservation,
'heure_debut' => $request->heureDebut,
'heure_fin' => $request->heureFin,
'horaire_id' => $request->horaire,
'local_id' => $request->local,
'event_id' => $request->event
]);
)。
我的问题是:插入的最佳方法是什么?我不确定是否要删除, DB::table(...)->insert(...)
但我想知道这种方法和另一种方法有什么区别。
提前致谢。
解决方案
您可以使用 php make:model Reservation -a 创建模型、迁移和控制器
最好的方法是使用模型,您需要一个模型预订,php artisan make:model Reservation
在你的模型中:
class Reservation extends Model
{
protected $table = 'reservations';
protected $fillable = [
'numero_semaine', 'date', 'heure_debut', 'heure_fin','horaire_id',
'local_id', 'event_id'
];
在模型中使用此方法创建:
public function create(Request $request)
{
$data = $request->all();
$validator = $this->validator($data);
if($validator->fails()){
return Response::json(array(
'succes' => false,
'errors' => $validator->getMessageBag()->toArray()
), 400);
}
Reservation::create([
'numero_semaine' => $data->nombreSemaine,
'date' => $data->dateReservation,
'heure_debut' => $data->heureDebut,
'heure_fin' => $data->heureFin,
'horaire_id' => $data->horaire,
'local_id' => $data->local,
'event_id' => $data->event
]);
}
protected function validator(array $data){
return Validator::make($data,[
'numero_semaine' => ['required', 'numeric' etc...],
'date' => ['required' etc...],
'next value...' => [ conditionals ]
]);
}
}
推荐阅读
- google-app-engine - Daphne on Google App Engine Flexible for Django Channels app: 502 Bad Gateway Error nginx
- amazon-elastic-beanstalk - Django,AWS EB 错误,您的 WSGIPath 引用了一个不存在的文件
- jenkins - Jenkins - java.lang.IllegalArgumentException:最后一个单元没有足够的有效位和 Gradle 错误:在根项目中找不到任务“null”
- android - 删除颤振中两列之间的空间
- angular - 将多个服务注入 Angular 库
- vue.js - Font Awesome 嵌入代码在使用 Vue CLI 生成的项目中不起作用
- c++ - 错误的向量构造函数使用?
- sql - SQL查询中如何从两个不同的表中获取不同的数据?
- swift - TableView viewForHeaderInSection 不会恢复第一响应者
- hive - Hive 计数不同的 UDAF