Laravel множественные отношения; восстановить только одно отношение (последнее желание) - PullRequest
0 голосов
/ 13 февраля 2020

У меня следующий запрос; все ссылки на отношения сделаны правильно, так как отображаются результаты.

MUsers::select('id')
    ->where('id', session('saas.user.id'))
    ->with([
        'getClasses' => function($getClasses) {
            $getClasses->with([
                'getDocuments' => function($getDocuments) {
                    $getDocuments->select('id', 'cathegory_id');
                }
            ]);
        }
    ])->firstOrFail();
  • getClassesTeacher - это отношение belongsToMany;
  • getDocuments - это отношение belongsToMany;

Как получить только последние активные отношения без необходимости дальнейшей обработки «линии спагетти». Я пытался использовать pluck несколько раз, но это не сработало.

MUsers::select('id')
    ->where('id', session('saas.user.id'))
    ->with([
        'getClassesTeacher' => function($getClasses) {
            $getClasses->with([
                'getDocuments' => function($getDocuments) {
                    $getDocuments->select('id', 'cathegory_id' );
                }
            ]);
            $getClasses->get()->pluck('getDocuments'); // has no effect or returns "column 'getDocuments' not found"
        }
    ])->get()
    ->pluck('getClassesTeacher');  // does not return what I needed

1 Ответ

0 голосов
/ 13 февраля 2020

вместо

get()

используйте

latest()->first()

Надеюсь, это решит вашу проблему

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