Laravel Livewire не может получить доступ к атрибуту json с ошибкой типаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Livewire не может получить доступ к атрибуту json с ошибкой типа

Сообщение Anonymous »

У меня есть модель с несколькими типичными столбцами и одним столбцом JSON. Json преобразуется в массив:
Модель:

Код: Выделить всё

protected $casts = [
'client' => 'array'
];
В моем компоненте Livewire я создал следующее правило проверки
Компонент Livewire:

Код: Выделить всё

protected $rules = [
'editing.name' => 'required',

...

'editing.client' => 'present|array',
'editing.client.*.tenant' => 'required',
];
Я вызываю метод editModal, где набираю модель и устанавливаю общедоступное свойство с ее атрибутами. Уже отфильтровано по определенному элементу.
Компонент Livewire:

Код: Выделить всё

public function editModal(TokenCacheProvider $provider)
{
$this->editing = $provider;
$this->dispatchBrowserEvent('open-modal', ['modal' => 'edit']);
}
Мое лезвие — это простой компонент лезвия котла:
Лезвие: После загрузки страницы я получаю следующее исключение типа

Код: Выделить всё

foreach() argument must be of type array|object, string given
Это связано с тем, что атрибут клиента по-прежнему представляет собой строку, как и в базе данных. Это должен быть массив, как я его привел:
Изображение
< /p>
Поэтому я не понимаю, почему атрибут client по-прежнему является строкой, а не массивом в том виде, в каком он был приведен.
Спасибо< /п>

Подробнее здесь: https://stackoverflow.com/questions/734 ... type-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»