最简单的方法是犯故意的错误。例如,我想查看以下关系的完整 SQL 查询:
public function jobs()
{
return $this->belongsToMany(Job::class, 'eqtype_jobs')
->withPivot(['created_at','updated_at','id'])
->orderBy('pivot_created_at','desc');
}
我只是为了让一列找不到,这里我选择created_at,然后通过添加尾随s将其更改为created_ats:
public function jobs()
{
return $this->belongsToMany(Job::class, 'eqtype_jobs')
->withPivot(['created_ats','updated_at','id'])
->orderBy('pivot_created_at','desc');
}
因此,调试器将返回以下错误:
(4/4) ErrorException SQLSTATE[42S22]:找不到列:1054 未知
“字段列表”中的列“eqtype_jobs.created_ats”(SQL:选择
jobs.*, eqtype_jobs.set_id 作为pivot_set_id,
eqtype_jobs.job_id as pivot_job_id, eqtype_jobs.created_ats
作为pivot_created_ats,eqtype_jobs.updated_at 作为
pivot_updated_at, eqtype_jobs.id as pivot_id from jobs inner
在jobs.id 上加入eqtype_jobs = eqtype_jobs.job_id
eqtype_jobs.set_id = 56 order by pivot_created_at desc limit 20
偏移量 0) (查看:
/home/said/www/factory/resources/views/set/show.blade.php)
以上错误信息返回带有错误的完整 SQL 查询
SQL: select jobs.*, eqtype_jobs.set_id as pivot_set_id, eqtype_jobs.job_id as pivot_job_id, eqtype_jobs.created_ats as pivot_created_ats, eqtype_jobs.updated_at as pivot_updated_at, eqtype_jobs.id as pivot_id from jobs inner join eqtype_jobs on jobs.id = eqtype_jobs.job_id where eqtype_jobs.set_id = 56 order by pivot_created_at desc limit 20 offset 0
现在,只需从 created_at 中删除多余的 s 并在任何 SQL 编辑器(例如 phpMyAdmin SQL 编辑器)中测试此 SQL!
注意:
该解决方案已使用 Laravel 5.4 进行测试。