Dit is de code hier:
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');
}
Als ik de code uitvoer, wordt deze fout:
“count(): Parameter moet een array of een object zijn dat Countable implementeert”
Antwoord 1, autoriteit 100%
Dit is mijn oplossing:
count(array($variable));
hoop dat het werkt!
Antwoord 2, autoriteit 56%
Het gebeurt vanwege in PHP 7.2 NULL in count() return Warning.
Je kunt proberen te veranderen
count($admin)
naar
count((is_countable($admin)?$admin:[]))
Antwoord 3, autoriteit 19%
Houd er rekening mee dat wanneer u de methode count()
gebruikt, er een aftelbaar element moet zijn, zoals een array of object dat ArrayAccess
implementeert.
Admin::where('email',$request->email)->first();
Maar de first()
methode geeft je een enkel element, geen verzameling of array. De get()
methode geeft je een telbare verzameling met gevonden elementen
In plaats van count te gebruiken, kunt u direct controleren of de variabele zelf is gedefinieerd of null is
if($admin){
// do something here
}
of u kunt de methode is_null()
gebruiken
if(!is_null($admin)){
// do something here
}
Antwoord 4, autoriteit 3%
Je moet controleren of het null is in plaats van count, omdat je om één resultaat vraagt met first()
alleen dit
if($admin)
zal het doen.
als je een verzameling retourneert met ->get()
, dan kun je $admin->count()
aanvinken.
Antwoord 5, autoriteit 3%
$admin
variabele is geen array of object dat telbaar implementeert. Als u first()
gebruikt, is het resultaat een modelobject als record wordt gevonden, anders is het null. Voor deze aandoening kunt u gebruik maken van:
if (!empty($admin)) {
//
}
Vervang gewoon if (count($admin))
door if (!empty($admin))
.
En als u de get()
methode gebruikt om meerdere records te krijgen, kunt u dit controleren door:
if ($admins->count() > 0) {
//
}
Antwoord 6, autoriteit 3%
$admin = null;
var_dump(count($admin));
Output : WAARSCHUWING: COUNT (): Parameter moet een array zijn of een object dat telbaar is in … op regel 12 // vanaf PHP 7,2
Als de voorwaarde moet zijn als:
if(isset($admin) && count($admin))
Antwoord 7, Autoriteit 3%
Well,
$admin=Admin::where('email',$request->email)->first();
//It will always return an **object**.
And make sure you included Admin model in your controller like as.
Use App\Admin;
at the same time check that you will have to mention which field of table needs to be fillable like in your model such as
protected $fillable = [
'first_name',
'last_name'
];
whatever data you will going to save in your database.
and then check object is null or not
I mean is.
if($admin && $admin!==null){
//do whatver you want to do.
}
Antwoord 8
Gebruik isset($admin->id)
in plaats van count($admin)
Probeer dit:
protected function credentials(Request $request)
{
$admin=admin::where('email',$request->email)->first();
if(isset($admin->id)))
{
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');
}
Antwoord 9
Voeg dit toe aan deze code:
$user = User::where('email',$request->email)->first();
if ($user){
return redirect()->back()->with('errors','We cant find a user with that e-mail address.');
}else{
$user->password = bcrypt($request->new_password);
$user->update();
return redirect()->back()->with('success','Success');
}