Когда мы делаем простое приложение CRUD. В нашем контроллере под напряжением в методе редактирования

public function rEdit()
    {
        $this->data = auth()->user()->product()->where('id',$this->pid)->first()

    }

Поля таблицы - это "идентификатор, имя, цена, ...."

А затем в лезвии с токоведущим проводом мы можем получить это значение как

<x-jet-input id="name" type="text" class="mt-1 block w-full" wire:model.defer="data.name" />

Это очень простой пример.

Теперь это не будет именовать значение, пока я не введу значение имени в правило проверки

public function rules()
    {
        return [
            'sdata.name' => 'required',
        ];
    }

Если я добавлю имя в правила, оно покажет значение в лезвии, а если я удалю его, оно не будет показывать значение. У меня есть 100 полей в таблице, и некоторые из них требуются, а некоторые нет.

0
Mr.SH 15 Фев 2021 в 21:57

1 ответ

Лучший ответ

Определите свойство user в вашем компоненте Livewire, затем свяжите поля в вашем блейд-компоненте со свойствами вашего user. Затем вы можете просто вызвать save для объекта user.

class UserComponent extends Component
{
  public $user;

  public function mount()
  {
    $this->user = auth()->user();
  }

  public function save()
  {
    $this->user()->save();
  }
}
<x-jet-input id="name" type="text" class="mt-1 block w-full" wire:model.defer="user.name" />

<x-jet-input id="email" type="email" class="mt-1 block w-full" wire:model.defer="user.email" />

Вам нужно будет определить правила проверки для каждого свойства в вашей модели, которое вы хотите привязать к см. документацию:

Примечание. Чтобы это работало, у вас есть запись о проверке в $rules свойство для любых атрибутов модели, к которым вы хотите привязаться. В противном случае будет выброшена ошибка.

1
Unflux 16 Фев 2021 в 18:58