Я использую регистрационную форму, которая позволяет заполнять данные из двух разных связанных моделей User
и UserProfile
, затем эти данные необходимо вставить в базу данных, все данные принадлежат новой записи, In другими словами у меня есть новый User
и новый UserProfile
в базе данных.Вставить родственную модель в laravel 5
Не знаю, как вставить 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
Возможный дубликат [Сохранение связанных записей в laravel] (http://stackoverflow.com/questions/23228694/saving-related-records-in-laravel) –