count() parameter moet een array of een object zijn dat countable implementeert in laravel

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 ArrayAccessimplementeert.

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%

$adminvariabele 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');
        }

Other episodes