2013-07-09 117 views
1

建議Laravel如何返回所有不在關係中的記錄?我的意思是返回所有未分配給任務的用戶。我想提供一個顯示所有這些用戶的下拉列表,以便他們可以分配給該任務。它基本上是相反的:返回與關係無關的記錄?

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

謝謝。

表結構如下:

用戶:

user_id 
email 
password 

belongsToMany任務

task_user

task_id 
user_id 

任務

task_id 
task 

belongsToMany用戶

回答

0

你將不得不從用戶模型做到這一點(因爲任務不會知道這件事不要有任務的用戶)。

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 ...嘗試在查詢中包含 - > where('task','cleaning') - 但我不是100%確定 – Laurence

+0

這是查找任務的列名稱和清理值,工作。 – thestepafter