Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在雄辩中使用WHERE?_Php_Laravel_Laravel 4_Eloquent - Fatal编程技术网

Php 如何在雄辩中使用WHERE?

Php 如何在雄辩中使用WHERE?,php,laravel,laravel-4,eloquent,Php,Laravel,Laravel 4,Eloquent,是否可以在雄辩中使用WHERE?我需要这样做: if ($params) { foreach ($params as $param => $value) $this->users->where($param, '=', $value); } $users = $this->users->get($values)->take($limit)->toArray(); 附言。 $this->users是由eloont扩展的模型实例,

是否可以在雄辩中使用
WHERE
?我需要这样做:

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

$users = $this->users->get($values)->take($limit)->toArray();
附言。
$this->users
是由
eloont

扩展的模型实例,您需要做的是:

  • 启动您的查询
  • 将where附加到查询中
  • 已完成查询(
    take
    get
    toArray

  • 是的,你可以。看到你的代码,我会说你需要,请参阅文档进行澄清。 另见

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

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

    在使用
    get()
    函数之前,先构建有说服力的对象

    逻辑步骤:

  • 创造有说服力的对象
  • 调用所有条件/限制/联接函数
  • 使用
    get()
    获取行
  • 因此,您的代码如下所示:

    $users = $this->users;
    if ($params) {
        foreach ($params as $param => $value)
            $users->where($param, '=', $value);
    }
    
    $usersResult = $users->take($limit)->get()->toArray();
    
    您还可以使用以下选项:

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

    根据你的例子判断,你需要
    其中
    ,而不是
    其中
    类型,而OP在这里的是
    @JarekTkaczyk\u deczo\-你对
    其中
    中的差异是正确的,但OP需要的东西是不正确的,因为他只展示了逻辑和代码的片段。不,我是肯定的。OPs代码‘确实’
    在哪里,它只是在API方面是错误的。同时检查已接受的答案以供参考。
    take
    不会“完成”查询,
    toArray
    take
    为查询设置限制,而
    toArray
    是一个集合(和模型)方法,因此只能在执行查询后调用。要执行,您需要先获取
    /
    查找
    /
    等等。
    
    $query->where($params);
    
    // instead of
    foreach ($params as $param => $value)
            $query = $query->where($param, $value);
    }