#laravel #laravel-livewire #alpine.js
#ларавель #laravel-живой провод #alpine.js
Вопрос:
Поэтому я пытался создать компонент для каждого компонента ввода и формы, который я использую в своем проекте, поэтому я помещаю каждый select2, ввод, ckeditor и т. Д… к анонимному компоненту, и моя проблема в том, что ошибки проверки не отображаются.
Мой компонент Select2:
@props([ 'id' =gt; 'ckeditor', 'ref' =gt; 'ckeditor', 'name' =gt; 'description', 'label' =gt; 'CKEditor' ]) lt;div wire:ignore class="form-group @error($name) is-invalid @enderror"gt; lt;div class="{{ $attributes-gt;get('class') ?? 'col-md-12' }}"gt; lt;label class="form-label" for="{{ $id }}"gt;{{ $label }}lt;/labelgt; lt;textarea wire:model.defer="{{ $attributes-gt;whereStartsWith('wire:model')-gt;first() }}" class="form-control ckeditor" name="{{ $name }}" id="{{ $id }}"gt; lt;/textareagt; @error($name) lt;div class="invalid-feedback"gt;{{ $message }}lt;/divgt; @enderror lt;/divgt; lt;/divgt; @push('scripts') lt;scriptgt; $("document").ready(function () { ClassicEditor .create(document.querySelector('#{{ $id }}'), { toolbar: [ "heading", "|", 'bold', 'italic', '|', "link", '|', 'bulletedList', 'numberedList', '|', 'blockQuote', '|', 'outdent', 'indent', '|', 'undo', 'redo', '|', ], }) .then(editor =gt; { editor.model.document.on('change:data', () =gt; { @this.set('{{ $attributes-gt;whereStartsWith('wire:model')-gt;first() }}', editor.getData()); }) }) .catch(error =gt; { console.error(error); }); }) lt;/scriptgt; @endpush
Мой компонент CKEditor:
@props([ 'id' =gt; 'ckeditor', 'ref' =gt; 'ckeditor', 'name' =gt; 'description', 'label' =gt; 'CKEditor' ]) lt;div wire:ignore class="form-group @error($name) is-invalid @enderror"gt; lt;div class="{{ $attributes-gt;get('class') ?? 'col-md-12' }}"gt; lt;label class="form-label" for="{{ $id }}"gt;{{ $label }}lt;/labelgt; lt;textarea wire:model.defer="{{ $attributes-gt;whereStartsWith('wire:model')-gt;first() }}" class="form-control ckeditor" name="{{ $name }}" id="{{ $id }}"gt; lt;/textareagt; @error($name) lt;div class="invalid-feedback"gt;{{ $message }}lt;/divgt; @enderror lt;/divgt; lt;/divgt; @push('scripts') lt;scriptgt; $("document").ready(function () { ClassicEditor .create(document.querySelector('#{{ $id }}'), { toolbar: [ "heading", "|", 'bold', 'italic', '|', "link", '|', 'bulletedList', 'numberedList', '|', 'blockQuote', '|', 'outdent', 'indent', '|', 'undo', 'redo', '|', ], }) .then(editor =gt; { editor.model.document.on('change:data', () =gt; { @this.set('{{ $attributes-gt;whereStartsWith('wire:model')-gt;first() }}', editor.getData()); }) }) .catch(error =gt; { console.error(error); }); }) lt;/scriptgt; @endpush
Я не знаю, почему ошибка не отображается, хотя у меня есть @error и, скорее всего, она правильная. Любые идеи и помощь будут оценены по достоинству. Спасибо.
Комментарии:
1. вместо @error($name) попробуйте @error(‘{{$name}}’)
2. мой ответ был совершенно неправильным… дело в том, что это провод:игнорируйте директиву. Попробуйте вместо этого использовать wire:ignore.self или переместите директиву @error из этого контейнера