当我尝试跑步时:
$alunos = DB::table('students')
->select('students.id','students.name','students.matricula','students.birth')
->join('horarios_has_students','horarios_id','=',DB::Raw($id))
->whereRaw('students.id = horarios_has_students.students_id')
->where('students.situation',1)
->orderBy('students.name', 'ASC')
->get();
而且效果很好。但如果我将db::raw($id)改为$id,如下所示:
...
->join('horarios_has_students','horarios_id','=',$id)
...
它不起作用,因为在本例中horarios\u id是一个外键,laravel添加了引号(mysql查询中使用的引号)。所以我得到这个错误信息:
“sqlstate[42s22]:找不到列:1054”“on子句”“中的未知列”“3”“(sql:选择”“students”“。”“id”“,”“students”“。”“name”“,”“students”“。”“matricula”“,students
.birth
fromstudents
inner joinhorarios\u has \u students
onhorarios\u id
=3
其中students.id=horarios\u has \u students.students\u id和students\
.situation
=1 order byalunos
.name
asc)“
with db::raw()之所以有效,是因为它删除了``,所以如果命令是。。。关于“horarios\u id`=3。。。我该怎么做才能解决这个问题?提前谢谢。
1条答案
按热度按时间5us2dqdw1#
使用此选项: