Vul*_*der 3 php sql database laravel sqlsrv
我正在使用 Laravel 和 sqlsrv,连接到 SQL Server 2016 并且一切正常,直到我尝试在插入查询中使用输出子句。
查询是这样的
INSERT INTO TABLE(Columns) OUTPUT INSERTED.MyDesiredReturnColumn VALUES(Value)
Run Code Online (Sandbox Code Playgroud)
这在 SQL Server 中运行良好,并返回所需的值,但使用 Laravel 的 DB::insert 功能它只返回 1(成功插入)
我有一个我现在不想拥有的解决方法,使用 CreatedOn 字段返回最近创建的行,但这有潜在的问题。
更新:我试图检索的字段是在 SQL 中创建的唯一标识符字段 (guid),而不是从 Laravel 端创建
在尝试@PrathameshPalav 的使用 Eloquent 模型创建的建议后,值被正确插入到数据库中,但它仍然没有返回 uniqueidentifier。
$inserted = MyModel::create($information);
print "inserted id is " . $inserted->MyModelId;
Run Code Online (Sandbox Code Playgroud)
这是打印“插入的 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'];
}
Run Code Online (Sandbox Code Playgroud)
任何想法都会非常有帮助。
小智 5
为此,您可以使用 Eloquent ORM:
$insertedObject = ModelName::create($input_array);
Run Code Online (Sandbox Code Playgroud)
它将返回插入的模型对象作为响应。或者,如果您只想插入记录 ID,则使用
DB::table($tablename)->insertGetId($input_array);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |