2015-01-20 5 views
0
작동하지

나는 다음과 같은 테이블이 있습니다열망로드는 L4

사용자를

Schema::create('users', function(Blueprint $table) 
    { 
     $table->increments('id'); 
     $table->string('username', 30); 
     $table->string('email')->unique(); 
     $table->string('password', 60); 
     $table->string('remember_token')->nullable(); 
     $table->timestamps(); 
    }); 

조직

Schema::create('organisations', function(Blueprint $table) 
    { 
     $table->increments('id'); 
     $table->string('name')->unique('name'); 
     $table->integer('owner_id')->unsigned()->index()->nullable(); 
     $table->foreign('owner_id')->references('id')->on('users'); 
     $table->timestamps(); 
    }); 

와 나는 기구에게 설득력 모델을 다음 있습니다 :

내가 내 컨트롤러에서 다음과 같이 Eloquent ORM의 Eager Loading 기능을 사용하려고
class Organisation extends Eloquent { 

    /** 
    * @return \Illuminate\Database\Eloquent\Relations\HasOne 
    */ 
    public function owner() 
    { 
     return $this->belongsTo('User', 'owner_id', 'id'); 
    } 

} 

:

public function index() 
{ 
    return View::make('organisations.index') 
     ->with('organisations', Organisation::with('user')->all()); 
} 

나는, 나는 다음과 같은 예외 오류이 얻을 않는 경우 :

전화 정의되지 않은 메서드 조명을 \ Database \ Query \ Builder :: all()

이것이 작동하지 않는 이유는 무엇입니까? 열망하는로드를 잘못 사용하고 있습니까?

답변

2

all()Model 클래스의 정적 메서드이며 Model::all()과 같이 사용할 수 있습니다.
쿼리를 실행하려면 get()을 사용해야합니다.

Organisation::with('owner')->get(); 
+0

감사합니다. 거의 효과가있었습니다. 필자가 필요로하는 것은'Organization :: with ('owner') -> get();''belongsTo' 관계가'Organisation' 모델의'owner()'메소드에서 정의 되었기 때문입니다. – Latheesan

+1

예. 나는 당신의 관계를 솔직하게 보지 못했습니다. 나는 단지 오류와 전화를 보았고 그 문제가 무엇인지 알았다.) – lukasgeiter