【问题标题】:Mysql JOIN error with QueryBuilderQueryBuilder 的 Mysql JOIN 错误
【发布时间】:2017-06-02 15:47:05
【问题描述】:

我有一个问题!这是我的代码:

public static function getMessages($threader_id){
        $messages = DB::table('messages_messages')
             ->join('messages_participants', function ($join) {
                $join->on('messages_participants.id_message', '=', 'messages_messages.id')
                    ->where('messages_participants.id_threader', '=', $threader_id);
                 })
         ->get();
        return $messages;
}

我得到错误:未定义的变量:threader_id 不知道为什么,因为当我尝试return $threader_id; 时,它会返回我的值。 任何想法?谢谢

【问题讨论】:

  • 从 where 子句中删除 '='。 ->where('messages_participants.id_threader', $threader_id);
  • 没有。仍然是同样的错误:但如果我尝试 ->where('messages_participants.id_threader', '=', 3);它的工作!
  • 你能打印查询,并检查什么是实际查询。 dd(DB::getQueryLog());

标签: mysql laravel-query-builder


【解决方案1】:

正确的方法:

$messages = DB::table('messages_messages')
             ->join('messages_participants', function ($join)  use ($threader_id) {
                $join->on('messages_participants.id_message', '=', 'messages_messages.id')
                    ->where('messages_participants.id_threader',$threader_id);
                 })
             ->select('messages_messages.*')
         ->get();

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2012-09-10
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多