Проблема с попыткой вставить значение из запроса с красноречивым - PullRequest
1 голос
/ 05 августа 2020

Я пытаюсь выбрать и вставить значения в базу данных с красноречивыми моделями. Дело в том, что я сделал запрос, чтобы получить значение из другой таблицы и вставить его в новую. Но он продолжает вставлять 0, когда он должен вставить значение идентификатора, который я получаю

Вот как я выбираю идентификатор из таблицы клиентов:

$client_id = Client::select('id')->where('dni', '=', $request->client)->first();
        \Log::debug($client_id);

Отладка в журнале возвращает это:

[2020-08-05 17:43:25] local.DEBUG: {"id":1}  

И это вставка:

$seguro = new Seguro();

        $seguro->usuario_id = $user_id;
        $seguro->cliente_id = $client_id;
$seguro->save();

И вставка выполнена успешно, за исключением столбца cliente_id, где я получаю 0 вместо 1.

Кто-нибудь может мне с этим помочь?

1 Ответ

1 голос
/ 06 августа 2020

Ваш $ client_id содержит объект (модель), а не целочисленное значение. Вы даже можете увидеть это при отладке. Просто получите идентификатор этой модели, используя ->id

$seguro->cliente_id = $client_id->id; // also better change name $client_id to $client 

или

$client_id = Client::select('id')->where('dni', '=', $request->client)->first()->id;

. Также рекомендуется писать код на английском языке sh (имена переменных). Например, я не знаю, что должно означать «dni» в этом запросе.

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