将模型实例传递给另一个模型的功能

时间:2019-01-29 13:29:46

标签: php laravel eloquent model parameter-passing

这是我现在可以在我的一个控制器中运行的一段代码:

auth()->user()->confirmReservation(
  new Reservation(request(['room_id', 'data_ini', 'data_fin']))
);

这是我的用户模型中的方法:

public function confirmReservation(Reservation $reservation) {
  $this->reservations()->save($reservation);
}

我想向该对象添加变量作为另一个参数,但我无法在线找到答案。我是Laravel的新手,我知道这一定很基础。有谁能够帮助我?我也将不胜感激一些指导,以便我可以作为一名程序员改进。谢谢!

2 个答案:

答案 0 :(得分:0)

首先从请求中获取参数作为数组,然后添加其他参数。

$params = request(['room_id', 'data_ini', 'data_fin']);
$params['foo'] = 'bar'; // <-- Add another parameter

auth()->user()->confirmReservation(
  new Reservation($params)
);

答案 1 :(得分:0)

您可以尝试这样的事情

auth()->user()->confirmReservation(
    new Reservation($request->only('room_id', 'data_ini', 'data_fin')+['another_parameter'=>$anotherParameter])
);