尝试从 eloquent 的查询中插入值时出现问题
Posted
技术标签:
【中文标题】尝试从 eloquent 的查询中插入值时出现问题【英文标题】:Problem trying to insert a value from a query with eloquent 【发布时间】:2020-11-26 02:42:03 【问题描述】:我正在尝试使用 eloquent 模型选择并将值插入到数据库中。问题是,我进行了查询以从另一个表中获取一个值并将其插入新表中。但是当它应该插入我正在检索的 id 的值时,它会一直插入 0
这是我从表客户端选择 id 的方式:
$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();
并且插入成功,除了我得到 0 而不是 1 的列 cliente_id。
谁能帮我解决这个问题?
【问题讨论】:
【参考方案1】:您的 $client_id 包含对象(模型),而不是整数值。您甚至可以在调试中看到这一点。只需使用 ->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;
用英文(变量名)编写代码也是个好主意。例如,我不知道这个查询中的“dni”应该是什么意思。
【讨论】:
好吧,我完全错过了它。英文部分,是的,这是真的,但在这种情况下,我必须遵循用西班牙语编写的 API 的规范,所以......这很糟糕,但非常感谢!以上是关于尝试从 eloquent 的查询中插入值时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用多个值插入 SQL Server 时出现不正确的语法错误
无法使用 laravel eloquent ORM 插入 PostgreSQL
当我尝试通过存储过程插入空值时出现 SqlException
尝试在 Django 中的模型表之间建立关系。但是在插入值时出现错误 |外键项必须是一个实例