Как получить один элемент с моделью с отношениями Laravel

#php #laravel #eloquent

#php #laravel #красноречивый

Вопрос:

У меня есть три модели Driver Worker и Group . Модели такие:

 class Group extends Model
{
    ..... 
    public function driver()
    {
        return $this->belongsTo('AppDriver');
    }
    public function worker()
    {
        return $this->belongsTo('AppWorker');
    }

}
  

Пилоты

 class Driver extends Model
{
    public function groups()
    {
        return $this->hasMany('AppGroup');
    }
}
  

Рабочий

 class Workerextends Model
{
    public function groups()
    {
        return $this->hasMany('AppGroup');
    }
}
  

Но как я могу получить один элемент с отношениями, которые я определил в своих моделях. У меня есть это в моем контроллере, но я получаю только первый элемент таблицы. Мне нужно получить элемент с идентификатором, а также отношения.

 public function show(Group $group)
    {
        return $group->with(['worker','driver'])->first();
    }
  

Комментарии:

1. Что вы хотите получить? Все работники и водители вашей группы?

Ответ №1:

попробуйте это

 public function show(Group $group,$id){
   $group = $group->where('id',$id)->with(['worker','driver'])->first();  
   return $group
 }
  

в вашем маршруте

 Route::get('/group/show/{id}', 'GroupController@show')->name('group.show');