Pereiti prie turinio

Laravel middleware 403


Rekomenduojami pranešimai

Sveiki,

kažkodėl naudojant middleware routes faile, visada būna 403, nors ir keičiu user role_id.

dd() taip pat neveikia OrderPolicy.php

@can blade failuose veikia ir būdai per kontrolerį $this->authorize taip veikia, tačiau nesuprantu kodėl neveikia middleware, gal kas galėtų paaiškinti kur klaida?

 

Laravel 5.8

 

web.php

Route::get('/home', 'HomeController@index')->name('home')->middleware('can:view,order');

AuthServiceProvider.php

protected $policies = [
    'App\Order' => 'App\Policies\OrderPolicy',
];

OrderPolicy.php

public function view(User $user, Order $order)
{
   return $user->role_id === 2;
}

home.blade.php veikia

@can('view', $order)
   test
@endcan

HomeController.php

public function index(Order $order)
{
   //$this->authorize('view', $order);
   $orders = Order::all();

   return view('home', [
       'orders' => $orders,
       'order' => $order,
   ]);
}

Redagavo amQaz
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Labas

Sprendžiant iš dokumentacijos, tai panašu, kad trūksta „order“ parametro route, nes būtent iš ten jį turi paimti ir perduoti į policy.

Route::get('/home/{order}', 'HomeController@index')->name('home')->middleware('can:view,order');

Na parametro nepridėjau route, bet pridėjus adrese (orders/1) viskas veikia kaip ir turi būti :) Problema išspręsta

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...