php - 查询构建器获取结果数组而不是 Laravel 中的对象

标签 php laravel query-builder

这是我的问题

DB::table('genres')
        ->join('albumGenres', 'genres.id', '=', 'albumGenres.genre_id')
        ->join('albums', 'albumGenres.album_id', '=', 'albums.id' )
        ->select('genres.id')
        ->where('albumGenres.album_id','=',$this->id)->get();

但是我得到了这样的东西

"genre_id": [
        {
            "id": "4"
        },
        {
            "id": "8"
        }
    ]

我应该怎么做才能将结果作为数组获取

"genre_id" : [4,8]

最佳答案

对于新版本的 Laravel,您应该使用 pluck() 而不是 lists()。

DB::table('genres')
->join('albumGenres', 'genres.id', '=', 'albumGenres.genre_id')
->join('albums', 'albumGenres.album_id', '=', 'albums.id' )
->where('albumGenres.album_id', '=', $this->id)
->pluck('genres.id');

这是文档中的引用:https://laravel.com/docs/5.4/queries#retrieving-results (请参阅“检索列值列表”)

关于php - 查询构建器获取结果数组而不是 Laravel 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175026/

相关文章:

php - 尝试开发一个搜索引擎,我的代码有错误

java - Android php mysql 查询

php - Laravel:安排工作还是 artisan 命令?

php - 我可以使用转换器来转换来自 API 而不是来自数据库的数据吗?

symfony - 检查别名是否存在?

php - 安排在 IIS 中运行的 PHP 任务

PHP ZF2 Mysql 已经消失

php - Laravel 5.8 中未找到类 'app\login'

php - Laravel:在 DB::raw() 中使用别名时未知列

php - 如何在 Doctrine ORM 中使用 createQueryBuilder 选择特定列?