除了创建用户外,我还需要保存一些数据,这就是我在RegisterController.php
中试图做的事情:
protected function create(array $data)
{
if (isset($data['checkbox'])) {
$type = 1;
$available = 1;
} else {
$type = 0;
$available = 0;
}
$user = User::create([
'name' => $data['name'],
'username' => $data['username'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'type' => $type,
'available' => $available,
'company' => $data['company'],
'job' => $data['job'],
]);
$user->profilesInfoModel()->create([
'bio' => $data['bio'],
'site' => $data['site'],
'location' => $data['location'],
'education' => $data['education'],
]);
return $user->with('profilesInfoModel');
}
User.php(Model
)与one to one
具有profilesInfoModel
关系(是的,我知道我应该更改模型名称以使其更舒适)。
但是尝试注册用户后...我收到此错误消息:Method Illuminate\Database\Query\Builder::profilesInfoModel does not exist.
实际上是怎么回事?
答案 0 :(得分:2)
关系应该是这样
用户模型
public function profile()
{
return $this->hasOne(ProfileInfo::class, 'user_id');
}
假设您将ProfileInfo
作为配置文件模型,并将user_id
作为外键引用users
表id
字段
现在您可以像这样从$user
创建个人资料
$user->profile()->create([
'bio' => $data['bio'],
'site' => $data['site'],
'location' => $data['location'],
'education' => $data['education'],
]);
$user->load('profile'); //lazy eager load
return $user;
答案 1 :(得分:0)
1.in App \ Model \ User
public function profilesInfoModel()
{
return $this->hasOne(App\Model\User);
}
2。致电
use App\Model\User
在RegisterController中