我可以在 laravel 组件中设置自定义标签和自定义值吗?
Can i set a custom tag and a custom value in laravel component?
<div class="bg-white dark:bg-custom-black-600 dark:text-white rounded px-4 pb-4 pt-2">
<div class="flex-shrink-0 flex justify-between items-center">
<h4 class="font-semibold flex-shrink-0">
{{ __('services') }}
</h4>
<i class="ri-hard-drive-2-fill text-blue-600 dark:text-blue-600"></i>
</div>
<p class="text-3xl text-blue-600">
{{ Auth::user()->services->count() }}
</p>
</div>
这是我来自组件 card.blade.php
的代码。现在的问题是:“我可以创建一个必须在标签 <x-card title="" service="">
中指定的自定义值,还是不可能?我希望 {{ __('services') }}
和 {{ Auth::user()->services->count() }}
在代码示例。
您需要编写一个组件 class 来处理模板中的变量。 class 将解释输入并将其存储在可以在模板中访问的变量中。这都是描述in the documentation.
<?php
namespace App\View\Components;
use Illuminate\View\Component;
class Card extends Component
{
public function __construct(
public string $title,
public string $service,
)
{}
public function render()
{
return view('components.card');
}
}
像这样调用组件:
<x-card title="Something" service="something else"/>
然后您应该可以在 Blade 模板文件中使用 $title
和 $service
。请注意,如果您想使用 PHP 值,则需要执行以下操作:
<x-card :title="__('something')" service="something else"/>
注意属性名称前面的冒号。
<div class="bg-white dark:bg-custom-black-600 dark:text-white rounded px-4 pb-4 pt-2">
<div class="flex-shrink-0 flex justify-between items-center">
<h4 class="font-semibold flex-shrink-0">
{{ __('services') }}
</h4>
<i class="ri-hard-drive-2-fill text-blue-600 dark:text-blue-600"></i>
</div>
<p class="text-3xl text-blue-600">
{{ Auth::user()->services->count() }}
</p>
</div>
这是我来自组件 card.blade.php
的代码。现在的问题是:“我可以创建一个必须在标签 <x-card title="" service="">
中指定的自定义值,还是不可能?我希望 {{ __('services') }}
和 {{ Auth::user()->services->count() }}
在代码示例。
您需要编写一个组件 class 来处理模板中的变量。 class 将解释输入并将其存储在可以在模板中访问的变量中。这都是描述in the documentation.
<?php
namespace App\View\Components;
use Illuminate\View\Component;
class Card extends Component
{
public function __construct(
public string $title,
public string $service,
)
{}
public function render()
{
return view('components.card');
}
}
像这样调用组件:
<x-card title="Something" service="something else"/>
然后您应该可以在 Blade 模板文件中使用 $title
和 $service
。请注意,如果您想使用 PHP 值,则需要执行以下操作:
<x-card :title="__('something')" service="something else"/>
注意属性名称前面的冒号。