【问题标题】:How to pass variable from a joint mysql query in laravel如何从laravel中的联合mysql查询传递变量
【发布时间】:2018-10-02 12:44:26
【问题描述】:

我正在尝试加入 2 个具有相同 ID 和相同用户名的表,以检查该行是否存在。对于查询,我总是使用未定义变量:从我的视图中查询。

我正在使用这个查询:

$query= DB::table('table1')->select('table1.id')
->join('table2','table2.id','=','table1.id')
->where('active','=','1', 'username','=',Auth::user()->name)->get();
return view('table1', ['table1' => $query]);

请注意,如果没有联合查询,它可以正常工作。相同的变量名,我可以从 table1 中获取 ID。

现在我不太擅长加入 2 个表,所以我可能在某处出现错误,或者我的返回视图是错误的。如果没有联合查询,我将使用与连接相同的返回视图。也许这就是问题所在。

编辑:我从旧查询中传递旧变量。忘记关了。现在它传递变量。现在只需要计算正确的连接查询。

【问题讨论】:

  • 你试过左连接吗?
  • 我做到了。同样的问题。
  • 你可以试试我的答案,请显示两个表的表结构?
  • 你可以在活动和用户名之前添加表名,例如 table1.active 或 table2.active 并尝试。
  • 也试过了。

标签: php mysql laravel join


【解决方案1】:

您可以使用 leftJoin 轻松连接两个表。试试这个代码。

$query = DB::table('table1')
    ->leftJoin('table2', 'table1.id', '=', 'table2.id')
    ->where('active','=','1', 'username','=',Auth::user()->name)->get();
     return view('table1', ['table1' => $query]);

【讨论】:

  • 还是一样。我已经尝试过leftjoin,但仍然没有。我还添加了我之前忘记的 table1.active 和 table2.username。仍然没有任何改变。
  • use App\your_model_name;你导入你的模型了吗?
【解决方案2】:

尝试像这样使用。

$query= DB::table('table1')->select('table1.id')
->join('table2','table2.id','=','table1.id')
->where(['table1.active'=>'1', 'table1.username'=>Auth::user()->name])->get();
return view('table1', ['table1' => $query]);

【讨论】:

    【解决方案3】:

    你使用的连接查询只会显示值/数据,只有两个表都有数据要显示,同时如果你使用左连接,即使下一个表中没有可用数据,它也会显示您尝试访问的第二个表。

    $query= DB::table('table1')
    ->leftJoin('table2','table2.id','=','table1.id')
    ->where('active','=','1')
    ->where('username','=',Auth::user()->name)
    ->select('table1.id')
    ->get();
    
    if($query) // this means there is data in $query
    {
        return view('table1', ['table1' => $query]);
    } else { // there is no data in $query
        return view('table1', ['table1' => "no data available"]);
    }
    

    【讨论】:

    • 还是什么都没有。并且查询不是空的,因为它甚至不会返回“无可用数据”
    • 它返回什么?
    • 未定义变量:再次查询
    • 这很奇怪,你能告诉我们那个函数的完整代码可能是哪里出了问题
    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 2016-12-19
    • 1970-01-01
    • 2019-07-10
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多