php - 拉维尔 5.5 : Authorization Policy AccessDeniedHttpException This action is unauthorized

标签 php laravel policy

我创建了一个授权策略,所以我遇到了这个问题。

我已经看到了这些解决方案,但我的问题还没有解决:

Solution 1

Solution 2

Solution 3

代码如下:

ArticalesController 类中使用的函数:

public function show(Articale $articale)
{
    $this->authorize('view', $articale);
    return view('articales.show',compact('articale'));
}

ArticalePolicy 类:

        <?php

        namespace App\Policies;

        use App\User;
        use App\Articale;
        use Illuminate\Auth\Access\HandlesAuthorization;

        class ArticalePolicy
        {
            use HandlesAuthorization;

            /**
             * Determine whether the user can view the articale.
             *
             * @param  \App\User  $user
             * @param  \App\Articale  $articale
             * @return mixed
             */
            public function view(User $user, Articale $articale)
            {
                return $user->id == $articale->user_id;
            }

AuthServiceProvider 类:

namespace App\Providers;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
        Articale::class => ArticalePolicy::class,
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        //
    }
}

最佳答案

尝试使用您的模型名称,将其替换为您的 AuthServiceProvider

替换

Articale::class => ArticalePolicy::class,

'App\Articale' => 'App\Policies\ArticalePolicy',

关于php - 拉维尔 5.5 : Authorization Policy AccessDeniedHttpException This action is unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53589500/

相关文章:

php - 我怎样才能在 Laravel 获得关系类型

remote-desktop - 帮助争论为什么要在物理计算机上开发软件而不是通过远程桌面

php - 如何使用 jquery 刷新 reCaptcha 图像

javascript - 如何使用 jQuery 在 "keydown"上动态添加新的输入字段?

php - 用php强制下载大文件

laravel - 如何在测试中获取使用 Laravel Livewire 上传的文件的哈希名称

php - Laravel 按列的一种类型分组,并且仅按该类型排序

php - 如何将 2 个 SQL 查询放在一起?

ruby-on-rails - Rails API 应用程序的异常(exception)政策

java - 如何在提供平台以运行不同语言代码的Web应用程序的tomcat中设置Java安全策略