首页 > 解决方案 > 在 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(...)但我想知道这种方法和另一种方法有什么区别。

提前致谢。

标签: phpmysqllaravel

解决方案


您可以使用 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 ]
    ]);
}

}


推荐阅读