急切加载在 L4 中不起作用
Eager loading not working in 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 模型:
class Organisation extends Eloquent {
/**
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function owner()
{
return $this->belongsTo('User', 'owner_id', 'id');
}
}
我正在尝试在我的控制器中使用 Eloquent
ORM 的 Eager Loading
功能:
public function index()
{
return View::make('organisations.index')
->with('organisations', Organisation::with('user')->all());
}
执行此操作时,出现以下异常错误:
调用未定义的方法Illuminate\Database\Query\Builder::all()
知道为什么这不起作用吗?我是否错误地使用了预加载?
all()
是Model
class中的静态方法,只能这样使用:Model::all()
.
您需要使用 get()
来执行您的查询。
Organisation::with('owner')->get();
我有以下表格:
用户
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');
}
}
我正在尝试在我的控制器中使用 Eloquent
ORM 的 Eager Loading
功能:
public function index()
{
return View::make('organisations.index')
->with('organisations', Organisation::with('user')->all());
}
执行此操作时,出现以下异常错误:
调用未定义的方法Illuminate\Database\Query\Builder::all()
知道为什么这不起作用吗?我是否错误地使用了预加载?
all()
是Model
class中的静态方法,只能这样使用:Model::all()
.
您需要使用 get()
来执行您的查询。
Organisation::with('owner')->get();