类Illuminate \ Support \ Collection的对象无法转换为int

时间:2017-07-24 08:35:59

标签: laravel

我在Controller中有条件检查数据库中的值,并根据此值将用户重定向到不同的登录页面

public function getLogin() 
{               
    $login = DB::table('login')->pluck('login');
    //var_dump($login);
    if ($login == 1) {
        return View::make('users.login');
    } else { 
        return View::make('users.login1');  
    }        
}

当我进入登录页面时,我遇到了这个错误

  

类Illuminate \ Support \ Collection的对象无法转换为int

当我var_dump($login);时,我

object(Illuminate\Support\Collection)#304 (1) { ["items":protected]=> array(1) { [0]=> int(1) } }

如何解决此错误?

4 个答案:

答案 0 :(得分:0)

$ login是一个集合,您可以使用查询获取表登录的所有值。如果你想要这个创建一个for循环并在你的if语句中。

例如:

foreach ($login as $val) {
    if ($val== 1) {
         return View::make('users.login');
    } else { 
        return View::make('users.login1');  
    }    
}

答案 1 :(得分:0)

你可以像这样使用它:

error: failed to push some refs to 'https://github.com/Brogolem35/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

答案 2 :(得分:0)

您应该在此使用isEmpty()count(),例如:

if (!$login->isEmpty())
if (count($login) > 0)
if ($login->count() > 0)

答案 3 :(得分:0)

好,在这种情况下,这很简单,您可以使用登录名[0]以int形式访问它。

 public function getLogin() 
{               
    $login = DB::table('login')->pluck('login');
    //var_dump($login);
    if ($login[0] == 1) {
        return View::make('users.login');
    } else { 
        return View::make('users.login1');  
    }        
}