Прохожу обучение php, сейчас пишем проект на laravel и что то завис на отношениях. Не могу разобраться как это работает? Уже читал доку и сторонние ресурсы и, что то нет полной картины пока.
Вопрос такой. Есть 3 таблицы task, user, status. Мне нужна связь между task = user и task = status.
Task = Status я настроил и то методом тыка больше наверное. Теперь вот так я получаю имя статуса
$task->status->name
модель Task
public function status()
{
return $this->belongsTo(TaskStatus::class);
}
миграция task
$table->id();
$table->string('name');
$table->string('description')->nullable();
$table->integer('status_id')->default(1);
$table->integer('created_by_id');
$table->timestamps();
Модель status
public function task()
{
return $this->hasMany(Task::class, 'status_id');
}
миграция status
$table->id();
$table->string('name');
$table->timestamps();
все работает, подобным способом
$task->status->name получаю статус
по аналогии пытаюсь получить имя юзера создавшего таск
модель Task
public function user()
{
return $this->belongsTo(User::class);
}
модель user
public function tasks()
{
return $this->hasMany(Task::class, 'created_by_id');
}
но при попытке получить имя
$task->user->name приходит null. И не пойму почему. Вроде все так же как в первом случае... короче застрял. пробовал связывать таблицы через foreign но там ошибок накидало при миграции...
Заодно посижу сам потуплю в то что написал, бывает напишешь вопрос и сам потом ответ находишь.... ну или кто подскажет куда копать чтоб разобраться....