Как обеспечить уникальный идентификатор в Laravel Blade? - PullRequest
3 голосов
/ 05 июня 2019

Давайте представим, что у меня есть блейд-компонент, такой как:

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

IRL , этот компонент намного сложнее.Вы могли бы представить длинную форму с множеством полей с общими именами, такими как name, description, owner ...

Затем я использую этот компонент несколько раз, снова я предлагаю foreach, номы могли бы представить что-то еще, в чем я не могу использовать итератор для предоставления идентификатора моему компоненту:

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

Как я могу обеспечить уникальность id?

Один, возможно, плохойРешение было бы использовать локальную переменную:

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

Есть ли лучший способ?

1 Ответ

3 голосов
/ 05 июня 2019

Я бы передал элемент компоненту:

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

Что позволяет вам сделать это в нем:

<input type="text" id="foo_{{ $item->id }}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...