5

問題があります。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

私は何を間違っていますか?ポリシーを正しく使用できますか?

4

2 に答える 2