渴望加载不在L4中工作

时间:2015-01-20 11:06:18

标签: laravel laravel-4 eloquent eager-loading

我有以下表格:

用户

    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模型:

class Organisation extends Eloquent {

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

}

我正在尝试在我的控制器中使用Eager Loading ORM的Eloquent功能:

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

当我这样做时,我收到以下异常错误:

调用未定义的方法Illuminate \ Database \ Query \ Builder :: all()

知道为什么这不起作用?我是否错误地使用了预先加载?

1 个答案:

答案 0 :(得分:2)

all()Model类中的静态方法,您只能使用它:Model::all()
您需要使用get()来执行查询。

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