laravel5.5 查询构造器输出的别名被加上了表前缀

laravel5.5 查询构造器输出的别名被加上了表前缀
查到的,stockoverflow上,是可以这么用的:
https://stackoverflow.com/que...

clipboard.png

$users = DB::table('users')
        ->select(['users.id', 'users.name', 'o.real_amount', 'o.created_at AS order_at'])
        ->join('orders as o', 'o.user_id', '=', 'users.id')
        ->whereIn('users.id', [3,4])
        ->groupBy('users.id')
        ->get();

以上构造器输出的SQL语句是这样的, 表名 as 别名,也会给加上表前缀,该如何改呢?

select `pk_users`.`id`, `pk_users`.`name`, `pk_o`.`real_amount`, `pk_o`.`created_at` as `order_at` from `pk_users` inner join `pk_orders` as `pk_o` on `pk_o`.`user_id` = `pk_users`.`id` where `pk_users`.`id` in (3, 4) group by `pk_users`.`id`
阅读 5.9k
2 个回答

看起来问题是本来表名是 users , 但是输出的表名是 pk_users

如果是这个问题,请注意查看 config/database.php 文件中数据库配置的地方 prefix 是否有设置为pk ?

 'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
新手上路,请多包涵

楼主,我也遇到这个问题,leftjoin关联查询里面,别名的话,就会自动带前缀,请问这个问题你最后怎么解决的呀?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进