返回与关系无关的记录?

时间:2013-07-09 06:42:14

标签: php model controller laravel eloquent

建议使用Laravel返回不在关系中的所有记录的方法是什么?我的意思是返回未分配给任务的所有用户。我想提供一个显示所有这些用户的下拉列表,以便将它们分配给该任务。它基本上是反过来的:

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

谢谢。

表结构如下:

用户:

user_id
email
password

属于许多任务

task_user

task_id
user_id

任务

task_id
task

belongsToMany用户

1 个答案:

答案 0 :(得分: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());