Можно ли использовать Session Helper в Gate в Laravel? Я всегда получаю ложные сообщения от @can Laravel Gate?
Я хочу проверить, разрешено ли пользователю использовать определенное действие или нет. Если пользователь не разрешен, я хочу скрыть кнопки действий от пользователей. Итак, я помещаю разрешение в помощник сеанса. Я определился в воротах. Я хочу проверить лезвие с помощью @can.
Вот почему я определен в моем AuthServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Gate::define('add-inventory', function () {
return session('add_inventory') === 1;
});
}
}
В моем клинке
@can('add-inventory')
<li role="presentation">
<a role="menuitem" tabindex="-1" href="addinventory/{{ $product->products_id }}">
{{ trans('labels.addinventory') }}
</a>
</li>
<li role="presentation" class="divider"></li>
@endcan
Но @can('add-inventory')
всегда возвращает false. Разрешено ли использование сеанса в Gate? Или мне использовать вспомогательную функцию или что-то еще?