php - Laravel belongsToMany 仅返回特定列

标签 php model laravel pivot-table

所以我通过数据透视表 user_photo 在 Users 和 Photos 之间建立了多对多关系。我在我的用户模型中使用 belongsToMany('Photo')。然而,这里的问题是我的照片表中有十几个我不需要的列(尤其是在 json 响应期间)。所以一个例子是:

//Grab user #987's photos:
User::with('photos')->find(987);
//json output:
{
  id: 987,
  name: "John Appleseed",
  photos: {
    id: 5435433,
    date: ...,
    name: 'feelsgoodman.jpg',
    ....// other columns that I don't need
  }
}

是否可以修改此方法,使 Photos 模型仅返回接受的列(比如由数组 ['name', 'date'] 指定) ?

User.php

public function photos()
{
  return $this->belongsToMany('Photo');
}

注意:我只想在执行 User->belongsToMany->Photo 时选择特定的列。当执行类似 Photo::all() 的操作时,是的,我希望所有列都正常。

编辑:我试过Get specific columns using "with()" function in Laravel Eloquent但仍在选择列。还有 https://github.com/laravel/laravel/issues/2306

最佳答案

您可以使用 belongsToMany 和使用 laravel 关系的选择操作。

public function photos()
{
  return $this->belongsToMany('Photo')->select(array('name', 'date'));
}

关于php - Laravel belongsToMany 仅返回特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21646093/

相关文章:

asp.net-mvc - 该模型在MVC中的作用是什么?

php - 加载所有帖子并检查该帖子是否在 Laravel 中被喜欢

php - Laravel 5.2 比较字符串日期?

php - 在 MySQL 查询中插入 "&"或 "%"等字符

php - 使用 Symfony 路由从 .htaccess 重写 URL

ruby-on-rails - 何时分配外键以及何时创建关联?

ruby-on-rails - Rails : How to treat some fields of model info independently? 例如。帐户与个人资料信息

javascript - 从 javascript 获取输入值时无法将值传递给 Controller

php - laravel 从 3 个表中选择所有行

php - 使用子查询在 mysql 中构建嵌套对象