#laravel-livewire #laravel-8 #jetstream
#laravel-livewire #laravel-8 #jetstream
Вопрос:
Что я пытаюсь сделать, так это получить некоторые данные из базы данных и отобразить их в Input Value
полях, но здесь проблема в том, что при использовании wire:model='some_input_name'
значение не отображается. И если я удалю wire:model
, он покажет value
код:
<div class="form-group">
<label for="site_name">Site Name</label>
<input wire:model='site_name' type="text" name="site_name" id="site_name"
class="form-control"
placeholder="Site Name" value="{{$settings->site_name}}">
</div>
Здесь что-то не так?? Каков правильный способ отображения значения при привязке поля ввода к компоненту livewire?
Комментарии:
1. Поместите значение
$site_name
свойства, равное$settings->site_name
в классе компонента, а не в представлении.2. посмотрите видео здесь youtu.be/ZYv9T0O4JOw
Ответ №1:
Удалите value="{{ $settings->site_name }}"
из вашего <input>
и используйте следующий код в mount()
методе вашего компонента:
$this->site_name = $settings->site_name;
Это сохранит двустороннюю привязку данных, позволяя вам установить начальное значение.
Ответ №2:
Лучший способ добиться этого — установить в вашем компоненте массив правил, таких как
$rules = [
'settings.site_name' => 'required'
];
Это проверяет значения ваших полей и позволяет их отображать. Дальнейшее чтение здесь, в документах livewire.