如何仅在 Laravel 关系中选择某些列?

Lai*_*290 1 php laravel eloquent

我有以下数据库结构:

  • 用户

    • ID
    • 姓名
  • 邮政

    • ID
    • 用户身份
    • 标题
    • 内容

所以我在模型中创建关系函数:

class User extends Model {
   public function post()
   {
      return $this->hasMany(Post::class);
   }
}
Run Code Online (Sandbox Code Playgroud)

如果我执行$user->post将返回完整的帖子对象。

如何才能只获取帖子ID?

sho*_*101 6

你可以这样做

$user = User::with(['post' => function ($q) {
            $q->select('id');
        }])->where('id', $id)->first();
Run Code Online (Sandbox Code Playgroud)

或者您可以设置选择您的关系

public function post()
   {
      return $this->hasMany(Post::class)->select(['id','user_id']);
   }
Run Code Online (Sandbox Code Playgroud)