在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP/ laravel,無法注冊Policy類

laravel,無法注冊Policy類

我照著文檔寫的,看了半天不知道哪里出錯(cuò)了,求大佬幫忙給看一下:
圖片描述
在AuthServiceProvider.php里的$policies屬性里注冊了ArticlesPolicy這個(gè)類。
在Policies文件夾下面也用artisan控制臺(tái)命令生成了一個(gè)ArticlesPolicy類:
圖片描述
但是我在控制器里面使用Gate::allows()命令的時(shí)候,卻出錯(cuò)了:
圖片描述
大佬幫忙看看是哪里出錯(cuò)了,我自己看了半天沒看出來。

這個(gè)是ArticlesPolicy策略類里定義的:

public function update(User $user, Article $article)
    {
        return $user->id == $article->user_id;
    }

這個(gè)是控制器里使用Gate類的地方:

public function edit($id)
    {
        $article = Article::findOrFail($id);
        if (Gate::allows('articles.update',$article)) {
            return view('articles.edit', compact('article'));
        }else{
            return 'helloworld';
        }
    }

在不加權(quán)限管理的時(shí)候,不管有沒有權(quán)限,訪問類似blog.test/articles/123/edit這樣的地址的時(shí)候是沒問題的。加了權(quán)限管理后,不管有沒有權(quán)限,訪問同樣的地址就會(huì)出現(xiàn)上面的報(bào)錯(cuò)。

回答
編輯回答
情未了
但是我在控制器里面使用Gate::allows()命令的時(shí)候,卻出錯(cuò)了:

請貼出這部分的代碼


代碼上來看未發(fā)現(xiàn)問題。

報(bào)錯(cuò)的關(guān)鍵信息:Class ArticlesPolicy does not exist ,說明未發(fā)現(xiàn) ArticlesPolicy 這個(gè)類

1.更改 AuthServiceProvider 里 boot 這里的代碼,改成這種寫法

Gate::resource('articles', ArticlesPolicy::class);
根據(jù)題主反饋,這是正解。

2.上述步驟還是報(bào)錯(cuò)這個(gè)的話,并且在未發(fā)現(xiàn)代碼問題的情況下,建議執(zhí)行如下操作

php artisan clear-compiled 
php artisan optimize
2017年5月6日 19:39
編輯回答
若相惜

第一張截圖,最后一條use引用的時(shí)候,你取的類的別名和下面繼承類的名字一樣?別名不要與你的類名重復(fù).

2017年2月22日 15:26