Laravel 5.3 Laravel 5.3使用阵列保存相关模型

Laravel 5.3 Laravel 5.3使用阵列保存相关模型,laravel-5.3,Laravel 5.3,我有一个用户模型和事件模型 用户可以拥有/创建许多事件 事件属于用户 我制作此表格只是为了演示: 我在dd($request)时得到这个输出 如何将其保存在我的数据库表事件中。 这些数组字段有问题…除了用户和事件之外,我是否需要创建一些新表???是的,看起来您需要另一个表。我只是对表名进行了一个有根据的猜测,因为我不是100%确定这些时间和职业指的是什么,看起来你已经有了一个存储职业的表,但我可以看到以下关系: 一个用户可以有许多事件 事件属于用户 一个事件有多个时隙 时间段属于某个

我有一个用户模型和事件模型

用户可以拥有/创建许多事件

事件属于用户

我制作此表格只是为了演示:

我在dd($request)时得到这个输出

如何将其保存在我的数据库表事件中。
这些数组字段有问题…除了用户和事件之外,我是否需要创建一些新表???

是的,看起来您需要另一个表。我只是对表名进行了一个有根据的猜测,因为我不是100%确定这些时间和职业指的是什么,看起来你已经有了一个存储职业的表,但我可以看到以下关系:

  • 一个用户可以有许多事件

  • 事件属于用户

  • 一个事件有多个时隙

  • 时间段属于某个事件

  • 一个职业有很多时隙

  • 一个时隙有许多职业

因此,您的事件和职业(如果您将其称为其他名称,请不要担心)表应该如下所示:

事件(id、用户id、名称、开始、结束)

职业(身份证、职业等)

您需要添加一个额外的表:

时段(id、事件id、专业id、金额、从、到、小时)

然后在模型中设置这些关系

编辑

创建存储方法的基本方法是使用如下关系:

public function store(Request $request){
   // Get the request as an array
   $request = $request->all();
   // create a new event
   $event = Event::create($request);
   
   // Map timeslots to an array of Timeslot objects:
  $timeslots = array_map(function($personalId, $amount, $from, $to, $hours) {
      return new App\Timeslot($personalId, $amount, $from, $to, $hours);
  }, $request['personal_id'], $request['amount'], $request['from'], $request['to'], $request['hours']);

   // Save all timeslots for the event
   $event->timeslots()->saveMany($timeslots)
}
我还没有试过那个代码,但它应该为你指明正确的方向。您应该查看laravel关系,了解其工作原理:


是的,看起来你需要另一张桌子。我只是对表名进行了一个有根据的猜测,因为我不是100%确定这些时间和职业指的是什么,看起来你已经有了一个存储职业的表,但我可以看到以下关系:

  • 一个用户可以有许多事件

  • 事件属于用户

  • 一个事件有多个时隙

  • 时间段属于某个事件

  • 一个职业有很多时隙

  • 一个时隙有许多职业

因此,您的事件和职业(如果您将其称为其他名称,请不要担心)表应该如下所示:

事件(id、用户id、名称、开始、结束)

职业(身份证、职业等)

您需要添加一个额外的表:

时段(id、事件id、专业id、金额、从、到、小时)

然后在模型中设置这些关系

编辑

创建存储方法的基本方法是使用如下关系:

public function store(Request $request){
   // Get the request as an array
   $request = $request->all();
   // create a new event
   $event = Event::create($request);
   
   // Map timeslots to an array of Timeslot objects:
  $timeslots = array_map(function($personalId, $amount, $from, $to, $hours) {
      return new App\Timeslot($personalId, $amount, $from, $to, $hours);
  }, $request['personal_id'], $request['amount'], $request['from'], $request['to'], $request['hours']);

   // Save all timeslots for the event
   $event->timeslots()->saveMany($timeslots)
}
我还没有试过那个代码,但它应该为你指明正确的方向。您应该查看laravel关系,了解其工作原理:


数组有什么问题?如何在一行中保存数组?数组有什么问题?如何在一行中保存数组?嗨,craig,我试图在twitter上给你发送消息,但我不知道你是否收到了…但无论如何,我需要在controller中查看此表单的存储方法…这是我不知道如何制作的东西!如果你在的话,我需要你的帮助。我照你说的做了……现在唯一缺少的是如何将表单中的数据保存到数据库中。你真是不可思议……如果我有一家公司,我会马上雇用你!嗨,craig,我试着在twitter上给你发送消息,但我不知道你是否收到了…但无论如何,我需要在controller中查看此表单的存储方法…这是我不知道如何制作的东西!如果你在的话,我需要你的帮助。我照你说的做了……现在唯一缺少的是如何将表单中的数据保存到数据库中。你真是不可思议……如果我有一家公司,我会马上雇用你!