Php 在Laravel 6中进行插入的最佳方法
实际上,我正在尝试在Laravel应用程序中进行插入,但我不确定如何进行插入。我有两行不同的代码。一条线在呼叫一个模型 (Php 在Laravel 6中进行插入的最佳方法,php,mysql,laravel,Php,Mysql,Laravel,实际上,我正在尝试在Laravel应用程序中进行插入,但我不确定如何进行插入。我有两行不同的代码。一条线在呼叫一个模型 ($reservation=(new\App\reservation)->create($form_data);)另一个直接插入数据库 (DB::table('reservations')->insert([ 'numero_semaine'=>$request->nombreSemaine, “日期”=>$request->dateReservation, “heure_首次
$reservation=(new\App\reservation)->create($form_data);
)另一个直接插入数据库
(DB::table('reservations')->insert([
'numero_semaine'=>$request->nombreSemaine,
“日期”=>$request->dateReservation,
“heure_首次亮相”=>$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 ]
]);
}
}你所说的“最佳方式”是什么意思?这取决于您的用例。例如,如果您的模型运行任何验证检查,您不应该通过直接插入数据库来绕过它们谢谢。是否可以在不创建多个控制器的情况下对多个表执行此操作?或者我必须为每个创建方法创建一个控制器?控制器是例如,您可以在模型上创建,当您创建模型时,您有一个函数创建,当您需要更多的表时,您可以创建不同的模型,我可以编辑我的响应。请回答。那么控制器的数量呢?您通常是制作多个控制器,然后在其中放入一些方法,还是只制作一个控制器,其中包含所有方法?我需要把数据放在四个不同的表中。这是为了在拉雷维尔获得良好的练习。如果我的英语不好,请给我的答案添加一些进一步的解释-它不回答直接数据库更新或通过模型更新是否“更好”,通常我在模型上制作CRUD,在控制器中我操纵数据,或将数据传递给视图