Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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_Models - Fatal编程技术网

Php 如何通过模型循环查找Where子句?

Php 如何通过模型循环查找Where子句?,php,laravel,models,Php,Laravel,Models,我在项目中使用PHP Laravel框架时遇到了一个问题。我需要的是找到所有具有特定用户名的用户。这是我的代码 $keyword=$request['keywords']; $users=User::where('userName',$keyword); echo count($users); echo '<br>'; echo count($users->get()); forea

我在项目中使用PHP Laravel框架时遇到了一个问题。我需要的是找到所有具有特定用户名的用户。这是我的代码

        $keyword=$request['keywords'];
        $users=User::where('userName',$keyword);
        echo count($users);
        echo '<br>';
        echo count($users->get());
        foreach ($users->get() as $res){
            echo "results";
        }
但“结果”一词并没有打印出来。这里的问题是什么?如何循环通过users对象来打印所有用户。我使用的是Laravel 5.2

您应该先使用
get()
paginate()
来获取集合

然后,您通常对集合进行迭代:

$users = User::where('userName', $request['keywords'])->get();
echo $users->count();
foreach ($users as $user){
    echo $user->id;
}

User::where('userName',$keyword)->get()
这将返回用户总数。它返回0个用户。我已将你提到的报表分为两部分,并分别打印了账目。get()之后,它变为0。
get()
返回准确的结果,这意味着查询不返回db行。@user3888646这是因为没有具有
userName=$request['keyword']
的用户。但我的数据库中有一个具有我检查过的名称的用户。:-(你知道为什么它在两个实例中打印1和0吗?
foreach($users->get()as$res){
他在foreach循环中这样做了
$users = User::where('userName', $request['keywords'])->get();
echo $users->count();
foreach ($users as $user){
    echo $user->id;
}