我正在尝试从多个表中获取数据。我已将连接语句存储在$ Joins数组中,并将该数组传递给模型
这是我到目前为止所尝试的内容 -
$tbl_name="user_master";
$select= ['user_master.*', 'country.country_name', 'city.city_name', 'login_master.email_id', 'login_master.password'];
$joins=[
"'country', 'user_master.country_id', '=', 'country.country_id'",
"'city', 'user_master.city_id', '=', 'city.city_id'",
"'login_master', 'user_master.user_id', '=', 'login_master.user_id'"
];
$users=$obj->getdata($tbl_name,$select,$joins);
模型 -
public function getdata($tbl_name,$select,$joins)
{
$users = DB::table($tbl_name)
->join($joins)
->select($select)
->paginate(5);
return $users;
}
我正在尝试将$ joins数组传递给查询,但它显示错误 -
缺少Illuminate \ Database \ Query \ Builder :: join()的参数2,在第61行的/opt/lampp/htdocs/demo_laravel/app/Models/Userdata.php中调用并定义
如果我尝试 -
$users = DB::table($tbl_name)
->join('country', 'user_master.country_id', '=', 'country.country_id')
->join('city', 'user_master.city_id', '=', 'city.city_id')
->join('login_master', 'user_master.user_id', '=', 'login_master.user_id')
->select($select)
->paginate(5);
return $users;
它工作正常但是当我将数组传递给连接时它显示错误
怎么解决?
请帮帮我。
答案 0 :(得分:0)
试试这个:
$joins
采用以下格式:
$joins = [
['country', 'user_master.country_id', '=', 'country.country_id'],
['city', 'user_master.city_id', '=', 'city.city_id'],
['login_master', 'user_master.user_id', '=', 'login_master.user_id'],
];
和型号:
public function getdata($tbl_name, $select, $joins)
{
$users = DB::table($tbl_name);
foreach ($joins as $join) {
$users = $users->join(...$join);
}
$users = $users
->select($select)
->paginate(5);
return $users;
}