亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

laravel,無法注冊Policy類

laravel,無法注冊Policy類

PHP
慕慕森 2019-03-06 21:50:11
我照著文檔寫的,看了半天不知道哪里出錯了,求大佬幫忙給看一下:在AuthServiceProvider.php里的$policies屬性里注冊了ArticlesPolicy這個類。在Policies文件夾下面也用artisan控制臺命令生成了一個ArticlesPolicy類:但是我在控制器里面使用Gate::allows()命令的時候,卻出錯了:大佬幫忙看看是哪里出錯了,我自己看了半天沒看出來。 這個是ArticlesPolicy策略類里定義的: public function update(User $user, Article $article) { return $user->id == $article->user_id; } 這個是控制器里使用Gate類的地方: public function edit($id) { $article = Article::findOrFail($id); if (Gate::allows('articles.update',$article)) { return view('articles.edit', compact('article')); }else{ return 'helloworld'; } } 在不加權限管理的時候,不管有沒有權限,訪問類似blog.test/articles/123/edit這樣的地址的時候是沒問題的。加了權限管理后,不管有沒有權限,訪問同樣的地址就會出現上面的報錯。
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

但是我在控制器里面使用Gate::allows()命令的時候,卻出錯了:

請貼出這部分的代碼


代碼上來看未發現問題。

報錯的關鍵信息:Class ArticlesPolicy does not exist ,說明未發現 ArticlesPolicy 這個類

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

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

2.上述步驟還是報錯這個的話,并且在未發現代碼問題的情況下,建議執行如下操作

php artisan clear-compiled 
php artisan optimize
查看完整回答
反對 回復 2019-03-18
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

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

查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 467 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號