对于具有int的自动增量id,在save()方法之后,它返回id。
但是它不返回由mysql触发器执行的自定义增量id主键。
$productData = new Product($request->all());
$productData->save($productData->getAttributes());
return $productData->id;在这种情况下,如何检索自定义标识?
发布于 2018-01-31 07:44:18
这超出了laravel的范围,因为数据库提供了自动递增字段,而laravel无法从数据库中获取last_insert_id。
在这种情况下,您必须更改触发器,以便它用新值更改last_insert_id:
Is there a way to get last inserted id of a NON - auto incremented column in MySQL?
注意:您可能需要确保Model的incrementing是true,这样它就可以尝试从数据库中获取id。如果您没有在您的模型中设置这个字段,那么就不要设置它。默认情况下,Model能够在插入后自动从数据库中获取值。
发布于 2018-01-22 11:13:06
您需要刷新模型实例。为了说明:
$p = (new Product($request->all()))->save();
return $p->fresh()->id;https://stackoverflow.com/questions/48376840
复制相似问题