$ATTRIBUTES->;合并:我做错了什么 [英] $attributes->merge : what am i doing wrong
本文介绍了$ATTRIBUTES->;合并:我做错了什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在LALAVELL中有以下刀片组件。我在用顺风。位于 Views/components/indigo-button-sm.blade.php
<button {{ $attributes->merge(['type' => 'button', 'class' => 'inline-flex justify-center py-1 px-1 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500']) }}>
{{ $slot }}
</button>
我希望能够动态地更改组件。也就是说,我使用上面的组件显示一个&SAVE&QOOT;按钮。但是,我想要显示一个按钮,该按钮显示"确认您的输入",并稍微更改按钮的外观,以直观地提示这是另一个选项。
具体地说,我有一个自动完成,用户正在输入一个项目,我提供了超过2,000个选择(学校)。但是,如果用户输入的学校不在我的数据库表列表中,我希望他们确认他们输入的学校是正确的,因此我想显示您的输入确认按钮,以便确认。如果他们选择的学校已在列表中,我不会要求他们确认他们的键入。
因此,我想更改保存按钮
bg-indigo-600 hover:bg-indigo-700
到"确认"按钮,配色方案略有不同。
bg-indigo-800 hover:bg-indigo-900
或
<x-indigo-button-sm x-show="showsaveschool" wire:click="saveSchoolInfo">Save</x-indigo-button-sm>
<x-indigo-button-sm x-show="showconfirmschool" wire:click="confirmSaveSchoolInfo">Confirm</x-indigo-button-sm>
所以他们输入学校,而学校不在查找列表中。他们点击保存按钮。保存按钮消失,确认按钮显示,并且确认按钮正下方将显示一段文本。
在我键入此内容时,我开始觉得只创建一个确认按钮并始终使用它会更好。
无论如何。我认为$Attributes(Merge[‘’])将允许您更改属性,但我认为它只允许您添加属性。因此,如果您有一个边际类,比如组件中的&Q;MY-0&Q;,它似乎不允许有一个新的类似类,如&Q;MY-5&Q;
您的评论将受到欢迎。
推荐答案
对于class
属性,您可以使用conditional merging来确保仅在尚未设置冲突的属性时才插入该属性。
<button
{{ $attributes->merge([
'type' => 'button',
'class' => [
'inline-flex justify-center py-1 px-1',
'border border-transparent shadow-sm',
'text-sm font-medium rounded-md text-white',
'focus:outline-none focus:ring-2',
'focus:ring-offset-2 focus:ring-indigo-500'
'bg-indigo-600 hover:bg-indigo-700' => hasCustomBackground(),
]
)}}
>
{{ $slot }}
</button>
在刀片模板中,如果布尔值为真,则插入非数字数组键。因此,在本例中,基于传递的类值创建一个hasCustomBackground()
component method:
class IndigoButtonSm extends Component
{
public string class;
public function hasCustomBackground(): bool
{
$classes = collect(explode(" ", $this->class));
return $classes->contains(fn ($c) => str_contains("bg-indigo", $c));
}
...
}
我以前从未使用过此功能,但根据文档,它应该可以工作吗?
这篇关于$ATTRIBUTES->;合并:我做错了什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文