php Laravel:“on子句”中的列$parameter未知

bnlyeluc  于 2022-12-21  发布在  PHP
关注(0)|答案(1)|浏览(99)

在Laravel中使用DB查询中的参数和参数绑定时遇到了问题。
我得到这个错误:
错误:"未找到列:1054 "on子句"中的列"3"未知"
以下是查询的一部分:

->join('foo AS f1', function($join) use ($bar)
      {
           $join->on('f1.foo', '=', 'f2.foo')
                ->on('f1.bar', '=', $bar);
      })

如果我这样做,它的工作:

->on('f1.bar', '=', DB::raw($bar));

这个问题的解决方案是什么?我当然也想使用参数绑定。但是,当我这样做时:

->on('f1.bar', '=', ':bar', ['bar' => $bar]);

我得到这个:
在Grammar.php第196行出现错误异常:
数组到字符串的转换

4nkexdtk

4nkexdtk1#

当你用join连接两个表时,你必须指定列名($bar必须等于列名字符串)。因此,如果你想发送一些参数数据,你必须使用where而不是on

->join('foo AS f1', function($join) use ($bar)
      {
           $join->on('f1.foo', '=', 'f2.foo')
                ->where('f1.bar', '=', $bar);
      })

相关问题