Php 是否正确使用laravel 5.2中的策略?我不能

Php 是否正确使用laravel 5.2中的策略?我不能,php,laravel,policies,Php,Laravel,Policies,我有一个问题,我不能使用laravel 5.2中的策略 我有两张桌子,学生和任务 我试图通过更改url应用策略来防止编辑任务,但我始终收到消息此操作未经授权,尽管任务是正确的用户 保单代码: <?php namespace App\Policies; use App\Models\Student; use App\Models\Task; class TasksPolicy { public function edit(St

我有一个问题,我不能使用laravel 5.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;
        }
    }
我认为代码很好,因为我已经修改了好几次,但正如我前面所说的,我总是收到这样一条消息此操作未经授权,尽管任务是编辑用户

我做错了什么?如果我能正确使用策略?

您正在使用“==”,这意味着端数据和数据类型都将匹配。可能是您的数据匹配,而不是数据类型,您可以尝试使用“==”


我不认为这是用来在两个模型之间。其中一个必须是
User
模型。您好,表用户将其用于其他用户,因此我必须使用students表(我使用的是multi-auth laravel 5.2)。如果您在
edit()
方法中
dd($student->id,$tasks->student\u id)
,您会得到什么?您好,很抱歉延迟响应。如果我像我说的那样做,我会得到每个表(1,1)的正确id。我已经使用了用户策略表,没有问题。显然,学生表是有问题的表。结果相同。感谢您的帮助。这不是一个大问题。文档中说,事实上,我们根据需要使用运算符
<?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
        ];
    public function edit($id)
    {
        $tasks = Task::findOrFail($id);
        $this->authorize('edit', $tasks);
        return view('tasks.edit', compact('tasks'));
    }
public function edit(Student $student, Task $tasks)
    {
        return $student->id == $tasks->student_id;
    }