Laravel 5.4如果声明具有auth条件

问题描述 投票:1回答:2

问题是它给出了一个错误。

未定义属性:Illuminate \ Auth \ SessionGuard :: $ confirm

这是我的代码:

if (Auth::guard('pharmacy')->confirmed == 1) {


    if (Auth::guard('pharmacy')->status == 'Approved') {


        return redirect()->intended(route('pharmacy.dashboard'));

      }

    }
laravel laravel-5.4
2个回答
0
投票

你应该这样做:

if (Auth::guard('pharmacy')->attempt(['email' => $email, 'password' => $password])) {
    if (Auth::user()->confirmed == 1 && Auth::user()->status == 'Approved') {
        return redirect()->intended(route('pharmacy.dashboard'));
    }
    //You might want to do something else here for those that fail either the confirmed or approved check.
}

首先,您应该针对pharmacy防护实例对用户进行身份验证。只有当用户通过身份验证后,您现在才能访问他/她的attributes ...在您的情况下... confirmedstatus


0
投票

确保您的表格具有confirmed字段,并且您已正确注册该警卫以将该表用作提供者。

警卫:config/auth.php

'guards' => [

   // ...

   'pharmacy' => [
      'driver' => 'session',
      'provider' => 'pharmacies',
   ],
],

移民

class CreatePharmaciesTable extends Migration
{
   public function up()
   {
      Schema::create('pharmacies', function (Blueprint $table) {
            // ...
            $table->boolean('confirmed')->default(false);
      });
   }

   // ...

}
© www.soinside.com 2019 - 2024. All rights reserved.