問題があります。laravel 5.2 でポリシーを使用できません。
私は2つのテーブル、学生とタスクを持っています。
URL を変更してタスクの編集を防止するポリシーを適用しようとしましたが、常に「タスクは正しいユーザーですが、この操作は許可されていません」というメッセージが表示されます。
ポリシー コード:
<?php
namespace App\Policies;
use App\Models\Student;
use App\Models\Task;
class TasksPolicy
{
public function edit(Student $student, Task $tasks)
{
return $student->id === $tasks->student_id;
}
}
AuthServiceProvider.php のコード
<?php
namespace App\Providers;
use App\Models\Task;
use App\Policies\TasksPolicy;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
Task::class => TasksPolicy::class
];
そして、TaskController.php ファイル内の呼び出し:
public function edit($id)
{
$tasks = Task::findOrFail($id);
$this->authorize('edit', $tasks);
return view('tasks.edit', compact('tasks'));
}
何度か修正したのでコードは良いと思いますが、先ほど言ったように、タスクはユーザーを編集することですが、このアクションは許可されていませんというメッセージが常に表示されます。
http://i.imgur.com/2q6WFb3.jpg
私は何を間違っていますか?ポリシーを正しく使用できますか?