ope*_*tor 5 php laravel laravel-blade laravel-8 laravel-jetstream
我只是在用 Laravel 8 做我的第一步,发现了一个我无法解决的问题。
/var/www/html/laravel/resources/views/dashboard.blade.php:
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-xl sm:rounded-lg">
<x-jet-welcome />
</div>
Run Code Online (Sandbox Code Playgroud)
如果创建在同一目录中一个新的刀片(FE的form.blade.php)具有相同的代码如上但<x-jet-subform/>代替<x-jet-welcome>它通常应重定向到位于下subform.blade.phpvar/www/html/laravel/resources/views/vendor/jetstream/components/subform.blade.php
但是,如果我尝试访问该页面(在 web.php 上设置路由后),它会说
InvalidArgumentException
无法找到组件 [jet-subform] 的类或视图。
所以我认为有必要“注册”新刀片,但我发现没有办法做到这一点......
该视图已发布
php artisan vendor:publish --tag=jetstream-views
Run Code Online (Sandbox Code Playgroud)
小智 8
我在这里处理同样的问题,发现您的问题没有得到解答。我找到的解决方案是创建我自己的新 Blade 组件。你可以使用:
$ php artisan make:component MyComponent
Run Code Online (Sandbox Code Playgroud)
这将创建两个新文件 /resources/views/components/my-component.blade.php 和 /app/View/Components/MyComponent.php。现在您只需要在该刀片文件上构建您的组件并使用 x-tag 引用它,如下所示:
<x-my-component></x-my-component>
这就是刀片组件代码的样子
<button {{ $attributes->merge(['type' => 'button', 'class' => 'some-classes']) }}> {{ $slot }} </button>
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。来自巴西的问候 :)
小智 8
您可以App\Providers\JetstreamServiceProvider.php在app\Providers文件夹中注册您的 jetstream 叶片组件。
将以下辅助函数添加到文件中:
protected function registerComponent(string $component) {
\Illuminate\Support\Facades\Blade::component('jetstream::components.'.$component, 'jet-'.$component);
}
Run Code Online (Sandbox Code Playgroud)
然后在 register 函数中使用以下代码段来注册您的 jetstream 叶片组件:
public function register() {
$this->registerComponent('subform');
}
Run Code Online (Sandbox Code Playgroud)
现在您可以使用您的自定义 jetstream 组件:
<x-jet-subform>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4509 次 |
| 最近记录: |