在laravel 5

时间:2015-05-07 06:25:03

标签: php orm model insert laravel-5

我使用注册表单,允许填写来自2个不同相关模型UserUserProfile的数据,接下来这个数据需要插入数据库中,所有数据都属于新条目换句话说,我在数据库中有一个新的User和一个新的UserProfile

我不知道在插入新UserProfile后如何使用相关模型插入User

以下是User型号:

class User extends Model implements AuthenticatableContract, CanResetPasswordContract {

    use Authenticatable, CanResetPassword;

    protected $fillable = ['first_name', 'last_name','email', 'password'];

    protected $hidden = ['password', 'remember_token'];

    public function getFullNameAttribute(){
        return $this->first_name . ' ' . $this->last_name;
    }

    public function profile() {
        return $this->hasOne('App\UserProfile');
    }

}

这里是UserProfile模型:

class UserProfile extends Model {

    protected $fillable = ['bio', 'twitter', 'website', 'birthdate'];

    public function getAgeAttribute(){
        return \Carbon\Carbon::parse($this->birthdate)->age;
    }

}

这就是我想做的事,但我无法理解:

public function postNew(){
        $params = Request::all();

        $user = new User();
        $user->fill($params);
        $user->save();

        $user->profile->save(new UserProfile($params)); //line 47
    }

当我尝试运行postNew()方法时,laravel会给我这个错误:

FatalErrorException in UserController.php line 47:
Call to a member function save() on null

1 个答案:

答案 0 :(得分:0)

使用$ user->个人资料() - >保存(新的UserProfile($ params));