Куда добавить логику в настройке множественных отношений Laravel 5.6 - PullRequest
0 голосов
/ 01 сентября 2018

Я довольно новичок в 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

Пояснение:

Цель состоит в том, чтобы толпа людей организовала то, что они дадут.

Существует таблица подарков, которая с помощью index-метода своего контроллера ресурсов печатает таблицу всех подарков для представления. В этой таблице я хочу, чтобы на каждой кнопке можно было нажимать две кнопки: «пометить как купленный» и «пометить как зарезервированный». Можно пометить подарок в «списке пожеланий» как зарезервированный, и поэтому другие больше не могут этого делать (и знают, что другой парень подарит его в подарок). Или можно пометить подарок как купленный, чем требуется, и администратор должен подтвердить эту покупку.

В настоящее время я создал три модели и один контроллер ресурсов. Подарочная модель имеет 2 отношения «hasOne»: сначала модель покупки, а затем модель бронирования. Модель покупки и модель резервирования настраиваются с отношением «принадлежат» к модели подарка.

Что я в настоящее время не могу сделать, так это различать различные состояния кнопок «пометить как зарезервированное» и «пометить как приобретенное» в зависимости от того, есть ли у подарка запись в таблице покупок или бронирования - где мне лучше разместить эту логику?

Псевдокод на мой взгляд в данный момент:

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

Надеюсь, этого описания достаточно, иначе дайте мне знать.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 02 сентября 2018

Вы можете просто проверить, существуют ли отношения:

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

    //Show purchase button

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

    //Show reservation button

@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...