搜尋

首頁  >  問答  >  主體

使用 auth::guard laravel 驗證顯示所有使用者資訊是否適當?

<p>我是 Laravel 的新手。我心中有一個問題...使用 auth::guard 顯示所有使用者資訊是否正確。我正在使用 Laravel Breeze 身份驗證? </p> <p>例如。是這樣嗎-</p> <pre class="brush:php;toolbar:false;">name: Auth::guard('web')->user()->name mobile: Auth::guard('web')->user()->mobile address: Auth::guard('web')->user()->address city: Auth::guard('web')->user()->city gender: Auth::guard('web')->user()->gender</pre> <p>像這樣嗎? </p>
P粉256487077P粉256487077514 天前520

全部回覆(1)我來回復

  • P粉779565855

    P粉7795658552023-09-05 11:13:17

    這可以工作,但更常見的是這樣寫。如果您確定您的使用者已登錄,則可以跳過 $user 的任何額外檢查。

    <?php
    $user = Auth::guard('web')->user();
    name: $user->name;
    mobile: $user->mobile;
    address: $user->address;
    city: $user->city;
    gender: $user->gender;
    ?>

    如果您的使用者可能未登錄,您可以新增特定行的檢查,如下所示:

    <?php
    $user = Auth::guard('web')->user();
    
    name: $user->name ?? null;
    mobile: $user->mobile ?? null;
    address: $user->address ?? null;
    city: $user->city ?? null;
    gender: $user->gender ?? null;
    
    //OR, when outputting in html
    
    name: $user->name ?? '';
    mobile: $user->mobile ?? ''
    address: $user->address ?? '';
    city: $user->city ?? '';
    gender: $user->gender ?? '';
    ?>

    如果您的用戶可能未登錄,而您想確保他們始終登錄,您可以執行以下操作:

    <?php
    $user = Auth::guard('web')->user();
    if($user === null){
       throw new AuthenticationException('User Not logged in');
    }
    name: $user->name;
    mobile: $user->mobile;
    address: $user->address;
    city: $user->city;
    gender: $user->gender;
    
    //OR
    
    $user = Auth::guard('web')->user();
    if($user === null){
       abort(401)
    }
    name: $user->name;
    mobile: $user->mobile;
    address: $user->address;
    city: $user->city;
    gender: $user->gender;
    ?>

    回覆
    0
  • 取消回覆