私はここで読む:https://laravel.com/docs/5.3/authorization#writing-policiesLaravel 5.3で許可ポリシーを実行するにはどうすればよいですか?
そして、私はこの
マイFavoritePolicyを好きにしようとしたが、このようなものです:
<?php
namespace App\Policies;
use App\User;
use App\Models\Favorite;
use Illuminate\Auth\Access\HandlesAuthorization;
class FavoritePolicy
{
use HandlesAuthorization;
public function view(User $user, Favorite $favorite)
{
return $user->id === $favorite->user_id;
}
}
私FavoriteControllerは、このようなものです:
<?php
use App\Models\Favorite;
...
class FavoriteController extends ApiController
{
...
public function index(Favorite $favorite)
{
$this->authorize('view', $favorite);
return view('profile.favorite');
}
}
私AuthServiceProviderですこのように:
012私はお気に入りのリストを表示するには、私のシステムを実行するとは、このようなエラーが存在する:
おっと、何かが間違っていたように見えますが。
1/1 Handler.php行のHttpException 115:この操作は、 が承認されていません。
認可ポリシーの実装は正しいですか?
ビューメソッド(FavoritePolicy)でdd($user)
を試してみると、ユーザーデータがログに記録されます。それは本当です
しかし、私はdd($favorite)
を試して、結果は現在ログに記録されているユーザーのお気に入りのデータを表示しません。テーブルを確認するのに対して、現在ログに記録されているユーザーの好きなデータが存在します。
どうすればこの問題を解決できますか? dd($favorite)
の
更新
あり結果:
Favorite {#498 ▼
#fillable: array:3 [▶]
#connection: null
#table: null
#primaryKey: "id"
#keyType: "int"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: []
#original: []
#relations: []
#hidden: []
#visible: []
#appends: []
#guarded: array:1 [▼
0 => "*"
]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
+exists: false
+wasRecentlyCreated: false
}
'dd($ favorite)'の出力は正確に何ですか? – Tek
あなたの質問にそのdd()の出力を追加することをお勧めします。あなたのコメントではそれはまったく読めません。 – nvisser