Laravel выяснение отношений - PullRequest
0 голосов
/ 15 апреля 2019

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

У меня есть 4 таблицы, подобные этой:

*USERS*
-user_id
-username
-role

*PROJECTS*
-proj_id
-proj_title
-client
-created_by

*TASKS*
-task_id
-proj_id
-status
-created_by

*CLIENTS*
-client_id
-client_name

Мое намерение состоит в том, чтобы создать отношения между этими таблицами, например, когда пользователь отправляет проект, получает свой идентификатор и из своего идентификатора сохраняет свое имя в "creation_by", или, когда пользователь отправляет ЗАДАЧУ, сможет получить имя проекта по его идентификатору.

Что меня смущает, так это то, что мне нужно создать внешние ограничения в обеих таблицах, например, от ПОЛЬЗОВАТЕЛЕЙ до ПРОЕКТОВ и наоборот или только в одной из них.

Заранее спасибо

1 Ответ

0 голосов
/ 15 апреля 2019

Вам не нужно создавать ограничения для таблицы, но для классов. Eloquent и Doctrine делают все, что вам нужно.

Я думаю, что ваш вопрос, если вам нужно создать функции $this->belongsTo('Class') и $this->hasMany('Class', 'class_id') во всех моделях. Ответ не всегда.

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

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