【问题标题】:Getting fully qualified class name from aliased class in Blade从 Blade 中的别名类获取完全限定的类名
【发布时间】:2021-11-30 15:42:46
【问题描述】:

我在我的 Laravel 8 应用程序的 config/app.php 中设置了别名。我可以在 Blade 中使用它们来访问按预期使用别名的类。但是使用 class 常量并没有给我完全限定的类名。

@can('viewAny', User::class)

我尝试了什么:

@dump(User::class) // 'User'
@dump(\App\Models\User::class) // 'App\Models\User'
@dump((new User)::class) // 'App\Models\User' (PHP 8)
@dump(SomeMadeUpClass::class) // 'SomeMadeUpClass'

我应该能够从别名类中获取完全限定的类名吗?或者有没有我可以在不指定模型的命名空间和类 (@can('viewAny', \App\Models\User)) 的情况下与 @can 一起使用的替代语法?

谢谢!

【问题讨论】:

    标签: php laravel laravel-8 laravel-blade


    【解决方案1】:

    由于添加到config/app.php 的所有别名都是通过AliasLoader 加载的,因此您可以从那里获取实际的类名。

    试试这个代码

    use Illuminate\Foundation\AliasLoader;
    use Illuminate\Support\Arr;
    
    $aliasLoaderInstance = AliasLoader::getInstance()->getAliases();
    
    dump($aliasLoaderInstance);
    
    //replace URL with the aliases you need
    dump(Arr::get($aliasLoaderInstance,'URL',null));
    //will print     Illuminate\Support\Facades\URL
    

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 2014-06-04
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 2011-01-02
      • 2016-09-30
      相关资源
      最近更新 更多