Здравствуйте. В миграциях в Laravel можно указать вторичный ключ (foreign key). Есть 2 вопроса:
- Можно-ли создать 2 вторичных ключа. Зачем? К примеру, есть задание и у него есть тот, кто его добавил и тот, кто его выполняет. Сейчас я делаю это так: в App\Task
public function developerr()
{
return $this->belongsTo('App\User', 'developer');
}
public function senderr()
{
return $this->belongsTo('App\User', 'sender');
}
А в App\User ничего не указываю. При этом все работает. Но у меня сомнения: является-ли такое решение оптимальным.
- После указания в миграциях вторичного ключа можно-ли в моделях написать просто
миграция
...
$table->foreign('sender')->references('id')->on('users');
$table->foreign('developer')->references('id')->on('users');
где-то в контроллере
$task = \App\Task::find(1);
$task->developer->name;
или для этого надо прописывать relationships как выше?
Спасибо.