On laravel / filament site I use features and looking at https://laravel.com/docs/11.x/pennant
I do in app/Providers/AppServiceProvider.php:
<?php
namespace AppProviders;
use App;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateSupportServiceProvider;
use AppModelsUser;
use LaravelPennantFeature;
...
class AppServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
];
/**
* Register any application services.
*
* @return void
*/
public function register()
{
...
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Feature::define('isManagerLogged', function (User $user) {
// THESE @ LINES NOT IN LOG
Log::info(' -1 $user->isManager()::');
Log::info($user->isManager());
return $user->isManager();
});
Feature::define('isAdminLogged', function (User $user) {
// THESE @ LINES NOT IN LOG
Log::info(' -1 $user->isAdmin()::');
Log::info($user->isAdmin());
return $user->isAdmin();
});
Model User has Authenticatable and some other traits:
<?php
namespace AppModels;
use FilamentModelsContractsFilamentUser;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentRelationsBelongsTo;
use IlluminateDatabaseEloquentRelationsHasMany;
use IlluminateDatabaseEloquentRelationsHasOne;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
use IlluminateSupportFacadesStorage;
use LaravelSanctumHasApiTokens;
use SpatiePermissionTraitsHasRoles;
use FilamentModelsContractsHasDefaultTenant;
use FilamentModelsContractsHasTenants;
use FilamentPanel;
use IlluminateDatabaseEloquentRelationsBelongsToMany;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportCollection;
use FilamentModelsContractsHasAvatar;
use Jeffgreco13FilamentBreezyTraitsTwoFactorAuthenticatable;
class User extends Authenticatable implements FilamentUser, HasDefaultTenant, HasTenants, HasAvatar
{
use HasApiTokens, TwoFactorAuthenticatable, HasFactory, Notifiable, TwoFactorAuthenticatable;
use HasRoles;
protected $table = 'users';
protected $primaryKey = 'id';
public $timestamps = true;
...
public function isManager()
{ /
return ( auth()->user()->can(ACCESS_PERMISSION_MANAGER_LABEL));
}
public function isAdmin()
return ( auth()->user()->can(ACCESS_PERMISSION_ADMIN_LABEL));
}
}
But using this feature in blade file as :
@feature('isAdminLogged')
isAdminLogged:: SOME COMTENT
@endfeature
I always see this block on my page, but no log lines from isManagerLogged
and isAdminLogged
feature definitions.
What is wrong ?
"laravel/framework": "^11.19",
"filament/filament": "^3.2-stable",
Thanks in advance!