我的应用包含2个控制器和型号:
这就是他们想要一起工作的方式:
startFlight()
[工作] startFlight()
:新的航班已添加到flight
表格中。
我的API必须返回创建的航班详细信息。
他们之间的关系是用户HasMany
飞行(虽然实际上用户只能在一次飞行中)
因为我注意到当我试图从2个不同的浏览器同时玩2个航班时,每次动作后两个浏览器的数据都会发生变化!然后我注意到我的控制器逻辑是一场灾难。
假设我在控制器中对startFlight()
方法进行API调用:
我的问题是:
由于用户只有一个航班分配给他的user_id
,我在调用$user->flight();
时应该如何检测用户当前的航班?
目前,它通过以下方式返回所有用户航班:
public function Flight()
{
return $this->hasMany('App\Flight');
}
所以,希望在解决问题#1之后,在致电startFlight()
时,我如何创建新航班并在没有航班时返回,或者如果存在,则返回现有航班?
答案 0 :(得分:0)
flights()
之后你可以打电话来回复一个雄辩的收藏:$user->flights
(或$user->flights()->get()
)
提及:$user->flights
- 这将在用户的模型中创建关系。
如果您想要获取当前航班而不是必须通过某个时间戳(例如created_at
)找到它,例如:$user->flights()->orderBy('created_at', 'desc')->first()
这是您获取最新用户的航班记录或空值的方式。
当您获得上面显示的最新记录时 - 检查其是否为空,您可以使用:$user->flights()->create($input)
轻松创建它,其中input是输入数据数组。