我试图在laravel中加载一个模型,但只返回某些列.我不想看到整张桌子.

public function car()
{
    return $this->hasOne('Car', 'id')->get(['emailid','name']);
}

我得到以下错误:

log.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined method Illuminate\Database\Eloquent\Collection::getAndResetWheres()'

推荐答案

Make use of the select() method:

public function car() {
    return $this->hasOne('Car', 'id')->select(['owner_id', 'emailid', 'name']);
}

Note:记住添加分配给匹配两个表的外键的列.例如,在我的例子中,我假设OwnerCar,这意味着分配给外键的列大约是owners.id = cars.owner_id,所以我必须在所选列的列表中添加owner_id

Laravel相关问答推荐

Laravel 5 如何配置 Queue 数据库驱动程序以连接到非默认数据库?

Laravel 集合排序不生效

使用 Amazon S3 的 Storage::get() 返回 false

Laravel 4:如何将 WHERE 条件应用于 Eloquent 类的所有查询?

使用 Eloquent 的 Laravel 块方法

从 sqlite DB 登录 Laravel,得到PDOException 找不到驱动程序

如何更改 Handlebars.js 的默认分隔符?

Laravel Artisan CLI 安全地停止守护进程队列工作者

如何在 Laravel 5.1 中为Electron邮件添加标题

如何在 Laravel 5 中按键获取所有缓存项目的列表?

Laravel 5 - 为包创建 Artisan 命令

在 Laravel 中,如何获取 *only* POST 参数?

防止 Eloquent 查询上的模型水合

Laravel 字符串验证以允许空字符串

Laravel 如何具体构建和判断 CSRF 令牌?

如何在laravel中获取列值的平均值

在 laravel 中安装 vue 3.0

Laravel 分页漂亮的 URL

使用 Queue::fake() 测试监听器

使用 Laravel Mix 合并多个文件