Входное значение, не работающее с проводом Livewire: модель

#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.