我有一个问题,我不能在 laravel 5.2 中使用策略。
我有 2 张桌子,学生和任务。
我尝试通过更改 url 来应用策略以防止编辑任务,但我总是收到消息This action is authorized as possible尽管任务是正确的用户。
政策代码:
<?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'));
}
我认为代码很好,因为我已经修改了好几次,但正如我之前所说,我总是收到消息This action is未经授权虽然任务是编辑用户。
http://i.imgur.com/2q6WFb3.jpg
我究竟做错了什么?因为我可以正确使用该政策?