Model :: firstOrNew (['attribute' => $ value]) выдает исключение «преобразование массива в строку» - PullRequest
0 голосов
/ 16 апреля 2019

Для этого я использую PHP-фреймворк Laravel 5.7. Я храню данные о клиентах на основании их адреса электронной почты. Поле "заказы" данных клиента имеет тип JSON. Каждый раз, когда клиент использует свою электронную почту, чтобы сделать заказ, я хочу проверить, существует ли запись с этим электронным письмом, если он это сделает, он извлечет JSON заказа из этой записи и добавит новый заказ, если нет, то создаст Новая модель делает новую запись.

Я получаю следующее исключение: «Преобразование массива в строку». При поиске я обнаружил, что это происходит из этой строки кода, которая следует соглашению из документации Laravel 5.7:

$client_data = ClientData::firstOrNew(['email' => $request->email]);

Это то, что у меня есть в моей ClientData модели:

protected $table = ['client_data'];
protected $guarded = ['created_at'];

Я подтвердил, что $request->email действительно строка с адресом электронной почты.

Я также попытался сделать это со следующей строкой кода, но получил то же исключение:

$client_data = ClientData::where('email', $request->email)->first() ?: new ClientData(['email' => $request->email]);

1 Ответ

0 голосов
/ 16 апреля 2019

защищенный $ table = ['client_data']; Я думаю, должен быть не массив, а строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...