2017-09-20 6 views
3

は、これは私のAuthServiceProviderファイルで、クラスUserPolicyは、(ビュー:F: xamppの htdocsに gates_policies リソースビュー home.blade.php)が存在しない

<?php 
namespace App\Providers; 
use App\User; 
use App\Policies\UserPolicy; 
use Illuminate\Support\Facades\Gate; 
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as 
ServiceProvider; 

class AuthServiceProvider extends ServiceProvider 
{ 
/** 
* The policy mappings for the application. 
* 
* @var array 
*/ 
protected $policies = [ 
    'App\Model' => 'App\Policies\ModelPolicy', 
    User::class => UserPolicy::class, 
]; 

/** 
* Register any authentication/authorization services. 
* 
* @return void 
*/ 
public function boot() 
{ 
    $this->registerPolicies(); 

    Gate::define('display_msg','[email protected]'); 
} 
} 

と私のブレード・ファイルで私はを「Hello World」提供ユーザーを表示しようとすると、Laravelのポリシーを使用して有効です。

私のブレード・ファイルのコード:

@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> 

      <div class="panel-body"> 
       @if (session('status')) 
        <div class="alert alert-success"> 
         {{ session('status') }} 
        </div> 
       @endif 

       I am User<br> 

       @can('display_msg') 
       Hello World 
       @endcan 
      </div> 
     </div> 
    </div> 
</div> 
</div> 
@endsection 

コードUserPolicyファイルに: クラス:

<?php 

namespace App\Policies; 

use App\User; 
use Illuminate\Auth\Access\HandlesAuthorization; 

class UserPolicy 
{ 
use HandlesAuthorization; 

/** 
* Create a new policy instance. 
* 
* @return void 
*/ 
public function __construct() 
{ 
    // 
} 

public function display(User $user) 
{ 
    if($user->name == 'vrajesh') 
    { 
     return true; 
    } 
    else{ 
     return false; 
    } 
} 
} 

私はエラーを取得していますUserPolicyが存在しません(表示:F:¥xampp¥htdocs¥gates_policies¥resources¥views¥home.blade.php)

+0

この問題は、ブレード・ページから来て、ここに –

+0

@RAUSHAN KUMARをご使用のブレード・ページのコードを貼り付けてください、私は私のブレードファイルのコードを追加しています。 –

答えて

0

変更してみてください:

Gate::define('display_msg','[email protected]'); 

へ:

Gate::define('display_msg','App\Policies\[email protected]'); 
+0

エラーは削除されましたが、メッセージはまだ 'Hello World'になりません。私は表示方法から真を戻してみました。 –

+0

Laravel 5.5でも同じ問題があります。面白いことに、Laravelの例(https://laravel.com/docs/5.5/authorization#gates)では、名前空間なしで設定されています。 – juniorgarcia

関連する問題