пользователя может иметь много голосов и многие случаев. случай может содержать некоторые из этих голосов.Laravel жадной загрузка: Пропустите, если существует связь
Peter создал три голоса. Он также создал один случай с двумя голосами. У Питера пять голосов.
Я хочу, чтобы извлечь все голоса, которые не часть повода для увеличения производительности.
Это загрузит все голоса:
$oUser->load('votes');
Это то, что я сделал до сих пор:
$aLoad = array('votes' => function($query) {
$query->whereNotIn('id', json_decode(json_encode(DB::raw('select id from occasions_votes')), true));
});
Мои проблемы
- Это не работает. Это все еще выбирает все голоса, даже если идентификатор существует в таблице event_votes.
- Это не похоже на экономию производительности.
Как вы решите его?
Должен ли я выполнять несколько запросов (выборки всех идентификаторов голосов> удалить все идентификаторы голосов, которые существуют в случаях events_votes> выборки голосов оставшихся идентификаторов), или есть прямой способ уйти? (Laravel 4,2)
Мой вопрос: зачем «$ oUser-> load ('votes');' загружать все голоса? Он должен загружать только голоса пользователя, а не голоса пользователя. Похоже, изменение схемы в порядке, и голоса должны быть полиморфными для пользователей и случаев. – user3158900