2013-07-09 1 views
1

Какой рекомендуемый способ Laravel вернуть все записи не в отношениях? Я имею в виду, что это возвращает всех пользователей, которые не назначены для задачи. Я хочу предоставить раскрывающийся список, который показывает всех этих пользователей, чтобы они могли быть назначены для задачи. В основном это было бы обратным:Возврат записей, не связанных с отношениями?

Task::find(1)->users()->get(); 

Спасибо.

Структура таблицы выглядит следующим образом:

пользователей:

user_id 
email 
password 

belongsToMany задачи

task_user

task_id 
user_id 

задачи

task_id 
task 

пользователей belongsToMany

ответ

0

Вы должны были бы сделать это с пользовательской модели (так как Task обыкновение знать о пользователях, которые не имеют задач).

Laravel provides a way to query relationships - так что вы могли бы сделать что-то вроде этого:

$users = User::has('task', '=', 0)->get(); 

редактирования - если вам нужно конкретные задачи использовать замыкание:

$users = new User; 

$array = $users->with(array('tasks' => function($query) 
{ 
    $query->where(task_id', 'whatever_task_you_want_here); 
}))->get(); 

var_dump($array->toArray()); 
+0

Это имеет смысл, но как бы я сделать это для конкретного задача, а не все задачи? – thestepafter

+0

ummm ... try include a -> where ('task', 'cleaning') в запросе - но я не уверен на 100% – Laurence

+0

Это поиск имени столбца задачи и значения очистки, т работы. – thestepafter