这是这里的代码:
protected function credentials(Request $request)
{
$admin=admin::where('email',$request->email)->first();
if(count($admin))
{
if($admin->status==0){
return ['email'=>'inactive','password'=>'You are not an active person, Please contact to admin'];
}
else{
return ['email'=>$request->email,'password'=>$request->password,'status'=>1];
}
}
return $request->only($this->username(), 'password');
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,此错误变为:
“count(): 参数必须是一个数组或一个实现 Countable 的对象”
Jer*_*alo 31
这是我的解决方案:
count(array($variable));
Run Code Online (Sandbox Code Playgroud)
希望它有效!
Dmy*_*Huz 20
发生这种情况是因为在 PHP 7.2 中 count() 返回警告为 NULL。你可以尝试改变
count($admin)
Run Code Online (Sandbox Code Playgroud)
到
count((is_countable($admin)?$admin:[]))
Run Code Online (Sandbox Code Playgroud)
注意这里,当你使用count()方法时,应该有可数元素,比如实现 的数组或对象ArrayAccess。
Admin::where('email',$request->email)->first();
Run Code Online (Sandbox Code Playgroud)
但是该first()方法为您提供单个元素,而不是集合或数组。该get()方法返回一个包含找到元素的可数集合
您可以直接检查变量本身是否已定义或为空,而不是使用计数
if($admin){
// do something here
}
Run Code Online (Sandbox Code Playgroud)
或者你可以使用is_null()方法
if(!is_null($admin)){
// do something here
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以将变量转换为数组:
count((array)$variable);
Run Code Online (Sandbox Code Playgroud)
如果它为空,那么它将成为一个空数组。
| 归档时间: |
|
| 查看次数: |
78383 次 |
| 最近记录: |