Laravel 5.5: Политика авторизации AccessDeniedHttpException Это действие не авторизовано

Я создал политику авторизации, поэтому столкнулся с этой проблемой.

Я видел эти решения, но моя проблема еще не решена:

Решение 1

Решение 2

Решение 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();

//
}
}

3

Решение

Попробуйте с названием вашей модели, как это, замените его на ваш AuthServiceProvider

замещать

Articale::class => ArticalePolicy::class,

с

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

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]