我有一个User类,其中包含以下内容:
public function school()
{
return $this->belongsToMany('School');
}
我有一个学校课程,内容如下:
public function user()
{
return $this->belongsToMany('User');
}
我使用pivot生成器创建我的数据透视表,这里是它的迁移:
public function up()
{
Schema::create('school_user', function(Blueprint $table) {
$table->increments('id');
$table->integer('school_id')->unsigned()->index();
$table->foreign('school_id')->references('id')->on('schools')->onDelete('cascade');
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->boolean('admin');
$table->timestamps();
});
}
用户表,学校表和数据透视表中只有一个项目。当我做的时候
$user = User::where('email', '=', Input::get('email'))->first();
$schools = $user->schools;
return Response::json([
'success' => true,
'user' => $user->toArray(),
'schools' => $schools
]);
它为学校返回null。我错过了什么吗?
答案 0 :(得分:0)
您已声明:
public function school()
{
return $this->belongsToMany('School');
}
但是使用$user->schools
,您应该将函数声明更改为schools
:
public function schools()
{
//...
}
另外请确保您正在使用正确的关系,我很困惑,因为一个用户可能只属于一所学校(逻辑上)。