在laravel 5.2中从数据库中获取数据

时间:2017-06-17 09:26:19

标签: php laravel

我正在尝试从数据库中获取数据。对于控制器中的那个,我已经为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;

以上查询工作正常,但是当我将选择字段分配给变量时,它无法正常工作 请帮帮我 感谢。

1 个答案:

答案 0 :(得分:1)

你的问题在于,将,函数中不同表的选择分开的彗差(select())被读取为字符串,因此它会破坏SQL查询。您的选择应如下所示:select('table1.*', 'table2.someColumn');请注意,昏迷不在单引号内''

所以试试这个:

    $select= ['user_master.*', 'country.country_name', 'city.city_name', 'login_master.email_id', 'login_master.password'];