Я относительно новичок в Laravel и работал над этим в моей стажировке в течение последних 3 недель, но теперь у меня проблема.
У меня 3 таблицы: пользователи, ставки и задания. Я хочу, чтобы пользователь мог разместить ставку на задании.
Основная структура моих таблиц такова:
Users: id | name | email | description Jobs: id | title | description Bids: id | proposal
Необходимо выполнить следующие критерии:
Пример: Пользователь 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'); }