从 Blade 中的别名类获取完全限定的类名
Posted
技术标签:
【中文标题】从 Blade 中的别名类获取完全限定的类名【英文标题】:Getting fully qualified class name from aliased class in 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
一起使用的替代语法?
谢谢!
【问题讨论】:
【参考方案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
【讨论】:
以上是关于从 Blade 中的别名类获取完全限定的类名的主要内容,如果未能解决你的问题,请参考以下文章