Как получить только одну запись с активной загрузкой в ​​Laravel 5? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть Eloquent модель Пользователь с отношением языки

class User extends Model {

  // ... some code 

  public function languages()
  {
     return $this->belongsToMany(Language::class);
  }
}

Моя сводная таблица миграции для отношения ManyToMany

public function up()
{
    Schema::create('language_user', function (Blueprint $table) {
        $table->unsignedInteger('user_id');
        $table->unsignedInteger('language_id');
        $table->primary(['user_id', 'language_id']);
    });
}

В контроллере я пытаюсь получить мой Пользователь

class UserController extends Controller
{
     public function show(User $user)
     {
        return response()->success($user->with('languages')->get());
     }
}

Но, к сожалению, вместо одного пользователя я получаю в результате массив Users Как можноЯ запрашиваю только одну пользовательскую запись с его языками ?

1 Ответ

0 голосов
/ 11 октября 2018

Использование Laravels Lazy Eager Загрузка :

Из документов :

Иногда вам может потребоваться загрузить отношения послеродительская модель уже найдена.

В вашем случае:

class UserController extends Controller
{
     public function show(User $user)
     {
        return response()->success($user->load('languages'));
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...