我正在构建一个基本模型,可以在其中根据需要将参数传递给函数。对于联接表,我已经针对一个表实现了这一点。我的模型函数看起来像这样-
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;
}
这很好用。但现在我需要多个表才能加入。如何在要加入的条件下传递表名。