如何在Eloquent中使用WHERE?

时间:2014-09-03 07:26:08

标签: php laravel laravel-4 eloquent

是否可以在Eloquent中使用WHERE?我需要做这样的事情:

if ($params) {
    foreach ($params as $param => $value)
        $this->users->where($param, '=', $value);
}

$users = $this->users->get($values)->take($limit)->toArray();

P.S。 $this->users是由Eloquent

扩展的模型实例

4 个答案:

答案 0 :(得分:1)

您需要做的是:

  1. 发起您的查询。
  2. 附加查询的位置。
  3. 完成了您的查询(takegettoArray
  4. $query = $this->users->newQuery();
    
    if ($params) {
        foreach ($params as $param => $value)
            $query = $query->where($param, $value);
    }
    
    $query = $query->take($limit)->get($values)->toArray();
    
    dd($query);
    

答案 1 :(得分:0)

是的,你可以。看到你的代码我会说你需要whereIn,请参阅文档以获得澄清。 另请参阅http://laravel.com/docs/eloquent

您可以使用where子句,如下所示:

$model = User::where('$param', '=', $something)->get();

答案 2 :(得分:0)

在使用get()函数之前构建您的Eloquent对象。

逻辑步骤:

  1. 创建Eloquent对象
  2. 调用所有条件/限制/连接函数
  3. 使用get()
  4. 获取您的行

    因此,您的准则如下:

    $users = $this->users;
    if ($params) {
        foreach ($params as $param => $value)
            $users->where($param, '=', $value);
    }
    
    $usersResult = $users->take($limit)->get()->toArray();
    

答案 3 :(得分:0)

您也可以使用:

$query->where($params);

// instead of
foreach ($params as $param => $value)
        $query = $query->where($param, $value);
}