如何使用Laravel查询生成器将多个联接表和联接条件从控制器传递到模型

时间:2019-09-16 10:21:12

标签: mysql laravel laravel-query-builder

我正在构建一个基本模型,可以在其中根据需要将参数传递给函数。对于联接表,我已经针对一个表实现了这一点。我的模型函数看起来像这样-

function getWhereJoin($table_name, $join_table, 
                $join_condition, $column_with_value_array)
{
    return DB::table($table_name)
           ->join($join_table, function ($join) use ($column_with_value_array, $join_condition) {
                    $join->on($join_condition);
             })
           ->where($column_with_value_array)->get();
}

我正在像这样从控制器传递参数

 public function access_menu()
 {

    $type = Auth::guard('admin')->user()->type;
    $whereData = [['backend_menu_access.user_type', $type]];
    $join_table = 'backend_menu_access';
    $join_table_condition= [['backend_menu.id', 'backend_menu_access.menu_id']];

    //get menus
    $baseModel = new BaseModel;
    $access_menu = $baseModel->getWhereJoin('backend_menu', $join_table, 
                                            $join_table_condition, $whereData);
    return $access_menu;
}

这很好用。但现在我需要多个表才能加入。如何在要加入的条件下传递表名。

0 个答案:

没有答案