2017-03-14 13 views
2

私は小さな個人的なプロジェクトに取り組んでおり、 "verified_employee"のデータベース値の認証チェックを実行する可能性があるかどうか尋ねたいと思います。私の現在のセットアップでは、 "verified_employee"はデフォルトで0に設定されたブール値のデータベースフィールドです。Laravel - 認証のためのデータベースの電子メールフィールドの認証を確認する

私の質問は次のようになります: "ブレードビュー(ie" Home.blade.php " )のように "auth :: user() - > verified_employee = '1'"のようなチェックを実行してから、ユーザーに続行させてください。そうでない場合、メッセージが "あなたのアカウントはそうではありません管理チームによって活性化されます。彼らがそうするために、」待っていてください

Userモデル

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 
use App\Hour; 

class User extends Authenticatable 
{ 
use Notifiable; 

/** 
* The attributes that are mass assignable. 
* 
* @var array 
*/ 
protected $fillable = [ 
    'name', 'email', 'password', 'admin', 'verified_employee' 
]; 

public function Hours() { 
    return $this->hasMany(Hour::class); 
} 

/** 
* The attributes that should be hidden for arrays. 
* 
* @var array 
*/ 
protected $hidden = [ 
    'password', 'remember_token', 
]; 
} 

ビュー

@extends('layouts.app') 

@section('content') 
<div class="container"> 
<div class="row"> 
    <div class="col-md-8 col-md-offset-2"> 
     <div class="panel panel-default"> 
      <div class="panel-heading">Dashboard</div> 
      <!-- CHECK IF user->verfied_employee is true --> 
      <!-- IF YES --> 
      <div class="panel-body"> 
       Welkom, {{ Auth::user()->name }} 
      </div> 
      <!-- IF NO --> 
      <div class="panel-body"> 
       Please wait till your account has been verified by the team. 
      </div> 
     </div> 
    </div> 
</div> 
</div> 
@endsection 

認証 - 。>ログインコントローラ

<?php 

namespace App\Http\Controllers\Auth; 

use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\AuthenticatesUsers; 

class LoginController extends Controller 
{ 
/* 
|-------------------------------------------------------------------------- 
| Login Controller 
|-------------------------------------------------------------------------- 
| 
| This controller handles authenticating users for the application and 
| redirecting them to your home screen. The controller uses a trait 
| to conveniently provide its functionality to your applications. 
| 
*/ 

use AuthenticatesUsers; 

/** 
* Where to redirect users after login. 
* 
* @var string 
*/ 
protected $redirectTo = '/home'; 

/** 
* Create a new controller instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    $this->middleware('guest', ['except' => 'logout']); 
} 
} 

答えて

0

あなたがそのように、ブレードでIFSを使用することができます。verified_employeeと仮定すると

@if(Auth::user()->verified_employee) 

<some-html></some-html> 

@else 

<other-html></other-html> 

@endif 

をブール値であり、そのトリックを行う必要があります。

+0

1または0であることを確認するにはどうすればよいですか? (検証済みの主体のフィールドにアクセスしているように見えます) –

+0

@if(Auth :: user() - > verified_employee == 1)は1をチェックし、正規のif構文は –

+0

です。どうもありがとうございました! –

0

はい、それは真か偽を返しますので、

@if(Auth::check() && Auth::user()->verified_employee) 
    //do stuff 
@endif 

あなたのフィールドがブール値である完全に罰金です。

0

ビューを表示したくない場合は、コントローラのメソッドでこれを行うことができます。

if (auth()->check() && auth()->user()->verified_employee) { 
    return view(....); 
} else { 
    return redirect('/')->with('message', $message); 
} 
関連する問題