Intereting Posts
file_put_contents и новая строка Как использовать дату Twig для показа недельного дня в китайском тексте? Нет следующего набора результатов. Пожалуйста, вызовите mysqli_more_results () / mysqli :: more_results (), чтобы проверить, следует ли вызывать эту функцию / метод Как проверить цифровую подпись с помощью openssl Многомерный массив – как получить определенные значения из подматрицы php 5.3 fwrite () ожидает, что параметр 1 будет ошибкой ресурса Программно получить путь к php Как поместить php-код в открывающие и закрывающие короткие коды Как отправить данные AJAX из VIEW в CONTROLLER? (РНР (MVC) + AJAX) передавать несколько значений текстового поля в контроллер. PHP – альфа сортирует строки из нескольких файлов в одном каталоге и сохраняет их в файлах с максимальными строками «x» в папках с именованными именами Как добавить rel = "nofollow" к ссылкам с preg_replace () iPhone Push Notification – проблема с ответом на ошибку переписать URL-адрес при отправке формы Как извлечь данные XML с помощью PHP

Laravel 5.1 – сводная таблица между 3 столами

Я относительно новичок в Laravel и работал над этим в моей стажировке в течение последних 3 недель, но теперь у меня проблема.

У меня 3 таблицы: пользователи, ставки и задания. Я хочу, чтобы пользователь мог разместить ставку на задании.

Основная структура моих таблиц такова:

Users: id | name | email | description Jobs: id | title | description Bids: id | proposal 

Необходимо выполнить следующие критерии:

  1. Пользователь может участвовать в торгах на многих заданиях, однако они могут только участвовать в торгах на каждом задании один раз.
  2. У работы может быть много ставок от многих пользователей.
  3. Каждая ставка привязана только к одному пользователю и одной задаче.

Пример: Пользователь 1 делает предложение в размере 300 фунтов стерлингов на Job 1. Это создает ставку с идентификатором 1 и предложением 300 фунтов стерлингов. Сводная таблица будет содержать идентификатор пользователя (1), идентификатор задания (1) и идентификатор ставки (1) вместе со статусом, который по умолчанию будет установлен на «Ожидание».

Я также хочу, чтобы таблица, которая связывает все 3, имеет статус. Я создал его следующим образом:

bid_job_user:

 bid_id | user_id | job_id | status 

Но отношения были неправильными, поэтому методы синхронизации и т. Д. Не будут работать корректно, если я захочу обновить статус. Любая помощь приветствуется, даже если это именно то, как я должен определять свои отношения.

Я не могу связать пользователя с заданием в таблице (job_user), поскольку это уже определено в другом месте как отношение многих к многим, так как менеджеры (пользователи) могут создавать множество заданий и заданий, которые могут быть созданы многими менеджерами.

Если вам нужна дополнительная информация, пожалуйста, спросите.

Чтобы создать таблицу ставок (согласно комментариям), вы можете рассматривать ее как объект пересечения.

 <!-- User.php --> //should recognize user_id,job_id by itself public function bidsMade() { return $this->belongsToMany('App\Job','bids')->withPivot('status','proposal'); } <!-- Job.php --> //should recognize user_id,job_id by itself public function bidsRecieved() { return $this->belongsToMany('App\User','bids')->withPivot('status','proposal'); }