【问题标题】:how to print model query in laravel如何在 laravel 中打印模型查询
【发布时间】:2017-01-28 05:11:38
【问题描述】:

我是 laravel 的新手,必须将记录保存在表中,我正在使用此代码插入值

$model->studentRollId = $value1;
$model->resident_permit_number = $value2;
$model->save()

我没有收到任何错误但记录没有插入表中,所以谁能告诉我如何通过 $model->save() 打印执行的查询,我尝试了 DB::getQueryLog() 但它没有显示查询日志,所以我可以找出问题所在。在此先感谢

【问题讨论】:

  • DB::getQueryLog() 只会启用日志查看你可以做的日志\DB::getQueryLog()
  • 这里是$model变量上面,它指向Model还是DB::Table..?

标签: laravel laravel-5


【解决方案1】:

使用->toSql(),在您的$model->save() 之后,只需使用dd($model->toSql())

编辑:你有\DB::enableQueryLog();吗?

\DB::enableQueryLog();
$model->studentRollId = $value1;
$model->resident_permit_number = $value2;
$model->save()
dd(\DB::getQueryLog());

【讨论】:

  • 你好感谢重播它没有打印插入查询
  • 是的,我确实尝试过,但上面的所有选择查询都在打印,但是插入查询不打印。
  • 在你更新你的模型之前enableQueryLog()怎么样?
【解决方案2】:

试试这个

$model->studentRollId = $value1;
$model->resident_permit_number = $value2;
$data = $model->toSql();
dd($data);

【讨论】:

    【解决方案3】:

    $fillable 数组中有 studentRollId 和 resident_permit_number 吗?

    转到 $model 并检查你是否有这样的东西:

    protected $fillable = [
        'studentRollId',
        'resident_permit_number'
    ];
    

    另一种解决方案是像这样在 raw 中插入数据:

        DB::table('table_name')->insert([
            'studentRollId' => $value1,
            'resident_permit_number' => $value2
        ]);
    

    希望对你有帮助。

    【讨论】:

      【解决方案4】:

      您是否在模型中提到了 $fillable 中的列名。在 laravel 中要在表中插入数据,您必须在 $fillable 方法中提及列名。

      例如 假设您有 users 表,并且对于该表,您有 User 模型。

      在 User.php 中添加如下方法

      protected $fillable = [
              'list of columns'
          ];
      

      【讨论】:

        猜你喜欢
        • 2017-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-22
        • 1970-01-01
        • 2023-03-28
        • 2019-09-25
        相关资源
        最近更新 更多