尝试从 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 中的模型表之间建立关系。但是在插入值时出现错误 |外键项必须是一个实例

将公式插入单元格 VBA Excel 时出现运行时错误 1004

从 Azure Blob 存储批量插入时出现 ERRORFILE 问题