Когда вы используете join
в красноречивой модели, некоторые необычные вещи могут произойти, если в обеих таблицах одинаковые столбцы (обычно id
).
Я догадываюсь, что ваша энергичная загрузкапроисходит с идентификатором таблицы applyRequest
, а не с идентификатором таблицы apply
, поскольку красноречивый (по любой причине) использует неверное значение идентификатора для построения модели.Это может привести к тому, что ваши активные нагрузки будут неправильными или не существуют.
Вы можете проверить это, дважды сбросив модель, один раз с объединением и один раз без объединения, а затем сравните значения.
dump(Apply::get());
dump(Apply::join('applyRequest', 'applyRequest.apply_id', '=', 'apply.id')->get());
Если значения отличаются, попробуйте следующее:
$application = Apply::select('apply.*')
->with('user','newUser', 'requests.files', 'requests.mails', 'requests.rank.orgas', 'requests.mode.trainer')
->join('applyRequest', 'applyRequest.apply_id', '=', 'apply.id')
->groupBy('apply.id')
->orderByRaw('max(applyRequest.updated_at) desc')
->get();
Новая функция select
будет означать, что запрос все еще будет соединять данные, но будут извлечены только ваши столбцы из таблицы применения, что предотвратитнеправильные значения вводятся в модель.