Php 在Laravel 6中进行插入的最佳方法

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_首次

实际上,我正在尝试在Laravel应用程序中进行插入,但我不确定如何进行插入。我有两行不同的代码。一条线在呼叫一个模型 (
$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,在控制器中我操纵数据,或将数据传递给视图