如何显示:: create Laravel构成的SQL查询?

时间:2019-03-09 19:19:31

标签: laravel laravel-5

是否可以在操作后显示现成的SQL:

 $r = \App\Visitor::create($item);

$item是数组数据。

我想知道为什么此操作会在插入的$r模型中返回,但是db表中没有更改。

因此,感谢您的回答,我尝试了您的解决方案:

这是查询:

insert into `visitors` (`lastname`, `firstname`, `middlename`, `birthday`, `company`, `document_number`, `pincode`, `code`, `idEvent`) values ("Huse", "Huseynkhanov", "Akif", "1981-04-09", "XXX", 16428285, "QT0FE12", 19283746564923, "17");

这是绑定屏幕:

enter image description here

如果在数据库中执行上面的查询,它将起作用。但是Laravel不会插入数据。

型号为:

class Visitor extends Model
{
    public $timestamps = false;

    public $table = 'visitors';

    protected $fillable = [
        "lastname",
        "firstname",
        "middlename",
        "birthday",
        "company",
        "document_number",
        "pincode",
        "status",
        "code",
        "idEvent"
    ];

    protected $primaryKey = 'idVisitor';

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

        static::addGlobalScope(new StatusScope);
    }
}

代码为:

foreach ($items as $item) {
    \App\Visitor::create($item);
}

2 个答案:

答案 0 :(得分:2)

我相信,您可以执行以下操作:

div.error--text {
  color: blue !important;
}

答案 1 :(得分:1)

您可以使用此

DB::enableQueryLog();
\App\Visitor::create(['key' => 'value', ....]);
$data = DB::getQueryLog();
$query = str_replace(array_fill(0, count($data[0]['bindings']), '?'), $data[0]['bindings'],  $data[0]['query']);
dd($query);