我正在尝试从数据库中获取数据。对于控制器中的那个,我已经为table_name和select_fields创建了变量,如下所示 -
$tbl_name="user_master";
$select="'user_master.*', 'country.country_name','city.city_name','login_master.email_id','login_master.password'";
$users=$obj->getdata($tbl_name,$select);
在模型中,我将这些变量分配给查询,如下所示 -
模型 -
public function getdata($tbl_name,$select)
{
$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;
}
但它没有用。它显示错误 - 语法错误或访问冲突:1064您的SQL语法有错误;
如果我试着 -
$users = DB::table('user_master')
->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('user_master.*', 'country.country_name','city.city_name','login_master.email_id','login_master.password')
->paginate(5);
return $users;
以上查询工作正常,但是当我将选择字段分配给变量时,它无法正常工作 请帮帮我 感谢。
答案 0 :(得分:1)
你的问题在于,将,
函数中不同表的选择分开的彗差(select()
)被读取为字符串,因此它会破坏SQL查询。您的选择应如下所示:select('table1.*', 'table2.someColumn');
请注意,昏迷不在单引号内''
所以试试这个:
$select= ['user_master.*', 'country.country_name', 'city.city_name', 'login_master.email_id', 'login_master.password'];