0
User::with(array('post'=>function($query){
$query->select('id','user_id');
}))->get();
Как это будет синтаксис для нескольких соединений? Мне нужно сделать это с помощью 3 соединений и 1, где условие.Как сделать несколько соединений с помощью Eloquent?
уход размещать свою модель? то, как вы извлекаете одно * соединение *, хорошо - вы должны начать с него. метод ':: с ($ parameter)' принимает параметр array (и string), поэтому вы можете выполнять 'User :: with (array ('post' => ..., 'rel2' => ...., 'rel3' => ....., .....) -> где ('someField', 'someValue') -> get() 'должен работать. Посмотрите на [api] (http: // laravel .com/api/5.1/Illuminate/Database/Eloquent/Model.html # method_with) и [source] (https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model. php # L731) и не забывайте о магии * точки * для отношений вложенности. –
То, как вы это делаете - на SQL-уровне не будет никаких объединений. Будет выполнено 2 SQL-запроса - один для извлечения пользователь и один, чтобы загрузить свои сообщения. –
Вместо этого вы должны использовать 'whereHas()'. Или просто 'has()' больше информации [здесь.] (http://laravel.com/docs/5.1/eloquent-relationships# запросы-отношения). Но вы также можете просто придерживаться основ и использовать простое 'join()' [здесь.] (http://laravel.com/docs/5.1/queries#joins). Это действительно зависит от того, что вы предпочитаете в использовать. – Joost