首页 > 解决方案 > 如何确保 Laravel Blade 中的唯一 ID?

问题描述

假设我有一个刀片组件,例如:

<input type="text" id="foo" name="{{$name}}"/>
<script>
$('#foo').whatever
</script>

IRL,这个组件要复杂得多。您可以想象一个长表单,其中包含大量具有通用名称的字段,例如name, description, owner...

然后我多次使用这个组件,我再次提出一个foreach但我们可以想象其他一些我不能使用迭代器为我的组件提供 id 的东西:

@foreach($items as $item)
    @component('foo')
    @endcomponent
@endforeach

如何确保 的唯一性id

一个可能不好的解决方案是使用局部变量:

@php($id = uniqid())
<input type="text" id="{{$id}}" name="{{$name}}"/>
<script>
$('#{{$id}}').change(whatever)
</script>

有没有更好的办法?

标签: phplaravellaravel-blade

解决方案


我会将项目传递给组件:

@component('foo', ['item' => $item])

这允许您在其中执行此操作:

<input type="text" id="foo_{{ $item->id }}"/>

推荐阅读