在Laravel 5.6多关系设置中向何处添加逻辑

时间:2018-09-01 16:01:06

标签: php laravel laravel-5.6

我对laravel并不陌生,目前正在构建我的第一个项目。我现在处于一个阶段,在该阶段我还不清楚如何正确建立数据库表关系以及在何处添加应用程序逻辑。

我具有或想要以下设置:

users table
id | name | email
-----------------
1  | Cathy| cathy@mail.com
2  | Hans | hans@mail.com

gifts table
id | name     | description
-----------------------------------------
45  | Football | Adidas Telstar 18
46  | Football shoes | Adidas Predator 18.3

purchases table
id | gift_id | confirmed
---------------------------
1  | 45         | null

reservations table
id | gift_id | user_id
---------------------------
1  | 46      | 2

说明:

目标是让一群人组织他们将要提供的东西。

有一个礼物表,该表通过其资源控制器的索引方法将所有礼物表打印到视图中。在此表中,我希望每个人都可以单击两个按钮:“标记为已购买”和“标记为保留”。一个人可能在“愿望清单”上将礼物标记为已保留,并且由于其他人不能再这样做了(并且知道另一个人会将其作为礼物)。或者,可以将一件礼物标记为已购买,超出要求,并由管理员确认购买。

我目前创建了三个模型和一个资源控制器。礼品模型具有2个“ hasOne”关系,首先是购买模型,其次是预订模型。购买模型和准备金模型与礼物模型具有“ belongsTo”关系。

我目前无法做的是,根据礼物在购买表或预订表中是否有条目来区分“标记为已保留”和“标记为已购买”按钮的不同状态。我最好放置这种逻辑吗?

我的视图的伪代码当前为:

foreach(gifts as gift)
    gift->name
    gift->description
    makePurchase form-submit-button
    makeReservation form-submit-button
endforeach

希望这个描述就足够了,否则请告诉我。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以简单地检查这些关系是否存在:

@if ($gift->reservation && $gift->reservation->user_id == auth()->id())

    //Show purchase button

@elseif(!$gift->reservation && !$gift->purchase)

    //Show reservation button

@endif