我有一个Eloquent 的模型,在这个模型中,我使用范围查询进行连接.这一切都很好,但我试图弄清楚如何在范围查询中仅从联接表中 Select 某些列.

这是我的控制器中的方法.

$accounts = Account::creator()->get();

下面是模型中的范围查询

public function scopeCreator($query) {
        $query->leftJoin('users','users.id','=','accounts.creator_id');
}

这是可行的,但它会返回all个来自帐户和用户的列,但我只需要来自帐户的所有列和来自用户的2列.

我试过这个...

public function scopeCreator($query) {
        $query->leftJoin('users','users.id','=','accounts.creator_id')->select(array('id','user_name'));
}

但是,这只会从用户返回这两个字段,并忽略帐户中的列.我知道如何使用两种不同的模型来实现这一点,但这意味着我必须创建一个无用的模型.如果我能弄清楚这一部分,这个范围查询功能就很棒了.

推荐答案

你可以试试这个:

->select('accounts.*', 'users.id as uid','users.user_name');

Laravel相关问答推荐

在Vite list 中找不到文件:Resources/scss/hrms.scss.如何使用LARAVEL VITE解决这个问题?

如何从laravel中的另一个表中获取用户名

如何在 Laravel 5 中添加我自己的自定义类?

在laravel中将数据插入数据透视表

Laravel中具有两个外键字段的数据库一对多

Laravel:如何在没有数据库的情况下对用户进行身份验证

Laravel:每当我返回一个模型时,总是返回一个与它的关系

计算laravel中查询返回的行数

在 Laravel 中将 Public 添加到assets资源路径

如何对模型执行删除操作?

Laravel Nova - 重新排序左侧导航菜单项

Laravel 5:完整性约束违规:1452 无法添加或更新子行:外键约束失败

如何从 laravel 中的现有数据库创建迁移

Laravel 5 与 Postgresql

无法打开流:没有这样的文件或目录(Laravel)

禁用Eager的关系

如何在laravel 5.1中使用url(路由)传递多个参数

Laravel - DecryptException:'MAC 无效'

Laravel 如何从子域 URL 中删除api前缀

Laravel binding绑定的用途和目的是什么?