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

I am using Laravel and sqlsrv, connected to SQL Server 2016 and all is working great until I try to use an output clause in my insert query.

Query is something like

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

This is working perfectly in SQL Server, and returning the desired value, but using Laravel's DB::insert functionality it is only returning a 1 (for successful insert)

I have a workaround that I would rather not have right now, using the CreatedOn field to return the most recently created row, but this has potential issues.

UPDATES: The field I am attempting to retrieve is a uniqueidentifier field (guid) that is created in SQL, not from Laravel-side

After attempting @PrathameshPalav's recommendation of using the Eloquent model creation, the values are being inserted correctly into the DB, but it is not returning the uniqueidentifier still.

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

This is printing "inserted id is "

Here is my model:

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'];
}

Any ideas would be greatly helpful.

The way that I solved this was by incorporating an Eloquent model (as pointed out by @PrathameshPalav), then (loosely) following this tutorial https://danielkoch.work/log/laravels-eloquent-guids.html

Specifically this part

public static function boot() {
    parent::boot();

    // Hook when a model is created
    static::creating(function ($model) {
        // Select a new ID
        $result = DB::select( DB::raw('Select NewID() NewUUID') );

        $model->{$model->getKeyName()} = $result[0]->NewUUID;
    });
}

After that, I added the primary key I had defined to the $fillable array and tested, and it works =)

Thank you both for your help!

You can use Eloquent ORM for this purpose:

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

It will return inserted model object in response. Or if you want only inserted record id then use

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

Yes, when you use insert it will return a bool. You can use insertGetId to get the the id.

If the table has an auto-incrementing id, use the insertGetId method to insert a record and then retrieve the ID:

$data = [....]; // data that will be inserted
$id = DB::table('xxx')->insertGetId($data); 

More info: https://laravel.com/docs/5.5/queries#inserts