laravel 4 :使用 eloquent 将新的重新编码插入到一对一的关系表中

laravel 4 : insert new recode into a one to one relational tables using eloquent

例如: 有两个 table 是一对一相关的
一个 table 是用户,另一个是学生

用户-
primaryKey-'uid',name,age

学生-
primaryKey-'std_id' , faculty , gpa

这是学生的榜样table

class Student extends Eloquent {
protected $table = 'students';
protected $primaryKey = 'std_id';
public $timestamps = false;

public function User(){
    return $this->belongsTo('User');
}
}

这是用户的模型table

class User extends Eloquent {
protected $table = 'users';
protected $primaryKey = 'uid';
public function Student(){
return $this->haveOne('Student');
}
}   

我想知道如何插入新的重新编码并保持 tables

之间的关系
$user = new User();
$user->name= Input::get('name');
$user->age= Input::get('age');
$user->save();

$student= new Student();
$student->faculty = Input::get('faculty');
$student->gpa= Input::get('gpa');
$student->save();

错误信息 ►

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or  update a child row: a foreign key constraint fails 

以上代码无效,我可以使用 push() 而不是使用 save()
怎么样?
我真的很感激任何帮助:)

docs实际上说明了一切。

只需对关系使用 save() 方法:

$user = new User();
$user->name= Input::get('name');
$user->age= Input::get('age');
$user->save();

$student= new Student();
$student->faculty = Input::get('faculty');
$student->gpa= Input::get('gpa');

$user->Student()->save($student);

或者反过来 associate():

$user = new User();
$user->name= Input::get('name');
$user->age= Input::get('age');
$user->save();

$student= new Student();
$student->faculty = Input::get('faculty');
$student->gpa= Input::get('gpa');
$student->User()->associate($user);
$student->save();

哦还有 One() 而不是 haveOne()