2017-09-20 22 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'消息。我嘗試從顯示方法直接返回true。 –

+0

在Laravel 5.5中遇到同樣的問題。有趣的是,在Laravel示例中(https://laravel.com/docs/5.5/authorization#gates),它沒有配置名稱空間。 – juniorgarcia

相關問題