Eloquent Query:仅获取某些列的关系属性

时间:2016-12-01 19:44:54

标签: laravel eloquent

我在两个模型之间存在多对多关系:故事和标记。我的应用程序中有一部分需要从Tag模型中返回给定Story的两列。我想完成这样的事情:

import { Component, OnInit } from '@angular/core';
import { Session, DashboardService } from '../dashboard.service';

@Component({
  selector: 'sessions-display',
  templateUrl: './sessions-display.component.html',
  styleUrls: ['./sessions-display.component.scss']
})
export class SessionsDisplayComponent implements OnInit {
  sessions: Session[] = [];
  errorMessage: string;

  constructor(private dashboardService: DashboardService) { }

    ngOnInit() {
      this.getSessions();
    }

    getSessions() {
      this.dashboardService.getSessions()
        .subscribe(
        sessions => this.sessions = sessions,
        error => this.errorMessage = <any>error);
    }
}

显然这不起作用,但我需要把它放在我只返回那两个字段的Tag集合的地方。

1 个答案:

答案 0 :(得分:1)

您需要使用方法->tags()才能访问关系构建器来执行查询,因此这个方法应该有效:

Route::get('taglist/{id}', function($id) {
    $tags = Story::find($id)->tags()->select('name', 'id as value')->get();

    return $tags;
});