Orm Laravel Eloquent-从相关模型检索特定列

Orm Laravel Eloquent-从相关模型检索特定列,orm,laravel,eloquent,Orm,Laravel,Eloquent,我是拉雷维尔的新手,但我的头脑仍然很有说服力。我有两个模型(A、B),它们具有多对多关系(在两个模型中都属于多个),具有以下字段: A: id, name, text, etc.. B: id, name, description, info, etc... A_B: id, A_id, B_id 检索“A”的对象时,我只想检索其相关“B”的“id”和“name”,而不是整个“B”对象,因为它们可能很大。是一种仅从相关模型中检索特定列的方法,还是最好将我的表分开,以便“id”和“name”

我是拉雷维尔的新手,但我的头脑仍然很有说服力。我有两个模型(A、B),它们具有多对多关系(在两个模型中都属于多个),具有以下字段:

A: id, name, text, etc..

B: id, name, description, info, etc...

A_B: id, A_id, B_id

检索“A”的对象时,我只想检索其相关“B”的“id”和“name”,而不是整个“B”对象,因为它们可能很大。是一种仅从相关模型中检索特定列的方法,还是最好将我的表分开,以便“id”和“name”各自独立?

我不确定从表“B”中获取所有列是否会对查询速度产生太大影响,但您可以尝试以下方法:

表“A\u B”的模型类

class A_B extends Eloquent {

    public function a(){
        $this->hasMany('A', 'id', 'a_id');
    }

    public function b(){
        $this->hasMany('B', 'id', 'b_id');
    }

}
在表“B”的模型中

class B extends Eloquent {
    //Hide fields from displaying in your query
    protected $hidden = array('description', 'info');
}
在控制器中:

//Get all records with A and B
$all = A_B::with('a')->with('b')->get();

return View::make('view')->with('all', $all);
在你看来:

@if($all->count() > 0)
    @foreach($all as $record)
        {{ $record->id }}
        {{ $record->name }}
    @endforeach
@else
    There are no records to be displayed
@endif
可能重复的