0
<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() }}不是在代码示例中是静态的。

4

1 回答 1

1

您需要编写一个组件类来处理模板中的变量。该类将解释输入并将其存储在可以在模板中访问的变量中。这在文档中都有描述。

<?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"/>

注意属性名称前面的冒号。

于 2021-12-31T00:21:06.487 回答