2016-02-05 5 views
1

Я стараюсь, чтобы все пользователи с образами относились ко многим. Где в таблице столбцов таблицы изображений равен 1.Laravel eloquent query issue

Ближе всего я создал.

User::with('Images')->has('Images')->get(); 

но он возвращает все изображения не только с типом 1;

Также я попытался

$a = User::defaultImage()->get(); 

и в пользовательском рамках модели четкости

public function scopeDefaultImage($query) { 

      $query->whereHas('Images', function ($query) { 
        $query->where('default', 1); 
       })->get(); 






     return $query; 
    } 

но он не возвращает отношения с изображениями, только пользователь

+0

Как это определить ваши отношения? –

+0

om моя модель пользователя у меня есть функции общего изображения() { return $ this-> hasMany ('App \ Image'); } –

ответ

2

Вы хотели бы изменить способ вы используете функцию with. Это сделало бы его так, что только изображения, возвращаемые будет иметь тип 1.

User::with(['Images' => function($q) { 
    $q->where('type', 1); 
}])->whereHas('Images', function($q) { 
    $q->where('type', 1); 
})->get(); 

также можете добавить whereHas, это будет возвращать только пользователи, которые имеют тип изображения 1 прилагается.

Я также был бы уверен, что в вашей базе данных у вас есть пользователи, и они прикреплены к изображениям с типом изображения 1, чтобы вы знали наверняка, что вам нужно вернуть некоторые данные.

Добавление дополнительных ограничений, вы просто цепь на другую whereHas

User::with(['Images' => function($q) { 
    $q->where('type', 1); 
}])->whereHas('Images', function($q) { 
    $q->where('type', 1); 
})->whereHas('Roles', function($q) { 
    $q->where('id', 5); 
})->get(); 
+0

tnx sir work great Я проголосую и установлю как правильно, но PLS мог бы добавить еще одно предложение, у меня также есть таблицы с доверенным api, поэтому у меня сводная таблица. Мне просто нужен еще один пункт, где Role = 5. Я новичок в laravel pls help –