Tal*_*les 3 laravel laravel-livewire
我想在渲染之前检查 livewire 组件是否存在。
我的程序有模块,每个客户端都启用了其中一些模块。我可以获得客户拥有的模块列表$client->getModules()。
每个模块都可以实现Livewire组件来增强程序的功能。如果这些组件存在于程序的正确部分,我想渲染它们。
例如,在用户创建视图中,我会这样:
@foreach($client->getModules() as $module)
if( component_exists( $module . '::users.create' ) )
@livewire( $module . '::users.create' )
endif;
@endforeach
Run Code Online (Sandbox Code Playgroud)
如果模块实现了与用户创建相关的功能,它将具有 livewire 组件users.create,但并非所有模块都会增强用户创建。
我需要在渲染之前断言组件的存在。
我想知道是否有类似的东西component_exists( Component::class ),否则,我很想看看是否有人可以给我提示如何将其创建为辅助函数。
您可以利用LivewireComponentsFinder类来检查组件是否在清单中:
app(LivewireComponentsFinder::class)->getManifest();
Run Code Online (Sandbox Code Playgroud)
如果你想创建一个助手,我创建了laravel-helpers。因此,您可以创建一个像这样的助手:
function component_exists($class)
{
$manifest = app(\Livewire\LivewireComponentsFinder::class)->getManifest();
return (bool) array_search($class, $manifest);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2639 次 |
| 最近记录: |