我刚刚开始在 Laravel 5.4 中使用策略来处理我的授权。我一直在遵循官方文档并创建了一个PostPolicy。
<?php
namespace App\Policies;
use App\User;
use App\Post;
use Illuminate\Auth\Access\HandlesAuthorization;
class PostPolicy
{
use HandlesAuthorization;
public function delete(User $user, Post $post)
{
return false;
//return $user->id === $post->user_id;
}
}
我的目标是使用政策阻止删除帖子的能力。 我目前仍然可以删除,但找不到实现这些政策规则的方法。
最佳答案
您需要授权操作。例如,您可以这样做:
if ($user->can('delete', $post)) {
或者在 Controller 中:
$this->authorize('delete', $post);
https://laravel.com/docs/5.5/authorization#authorizing-actions-using-policies
关于Laravel 策略不会停止删除操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48033910/