gpt4 book ai didi

php - 如何在 Laravel DB::insert 中返回我的 OUTPUT 子句

转载 作者:可可西里 更新时间:2023-11-01 00:39:38 26 4
gpt4 key购买 nike

我正在使用连接到 SQL Server 2016 的 Laravel 和 sqlsrv,在我尝试在插入查询中使用输出子句之前一切正常。

查询类似于

INSERT INTO TABLE(Columns) OUTPUT INSERTED.MyDesiredReturnColumn VALUES(Value)

这在 SQL Server 中运行完美,并返回所需的值,但使用 Laravel 的 DB::insert 功能它只返回 1(插入成功)

我有一个我现在不想使用的解决方法,即使用 CreatedOn 字段返回最近创建的行,但这有潜在的问题。

更新:我试图检索的字段是一个在 SQL 中创建的唯一标识符字段 (guid),而不是从 Laravel 端创建的

在尝试@PrathameshPalav 关于使用 Eloquent 模型创建的建议后,值被正确插入到数据库中,但它仍然没有返回唯一标识符。

$inserted = MyModel::create($information);
print "inserted id is " . $inserted->MyModelId;

这是打印“插入的 id 是”

这是我的模型:

namespace App;
use Illuminate\Database\Eloquent\Model;
class MyModel extends Model
{
//
protected $table = 'MyModelBase';
protected $primaryKey = 'MyModelId';
public $incrementing = false;
protected $keyType = "string";
public $timestamps = false;
protected $fillable = ['field1', 'field2', 'etc'];
}

任何想法都会非常有帮助。

最佳答案

您可以为此目的使用 Eloquent ORM:

$insertedObject = ModelName::create($input_array);

它将返回插入的模型对象作为响应。或者,如果您只想插入记录 ID,则使用

DB::table($tablename)->insertGetId($input_array);

关于php - 如何在 Laravel DB::insert 中返回我的 OUTPUT 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48325185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com