我有两个名为users
和profiles
的表。在users
表中,它有一个名为id
的列,在profiles
表中有一个名为userID
的列users
。现在我想要id
表格增加userID
,然后userID
分别自动填充。
如果有人创建了个人资料,那么users
列会根据登录id
表class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $table ="users";
protected $fillable = [
'userName', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function profileHave(){
return $this->hasOne('App\Profile','userID');
}
}
自动填充。我该怎么做?
用户模型:
class Profile extends Model
{
//
protected $table = "profiles";
public $fillable = ["userID","firstName","lastName","middleName","DOB","gender","featuredProfile","email","phone","summary","profilePic"];
public function userHave(){
return $this->belongsTo('App\User','userID');
}
}
个人资料模型:
profiles
但是当我向用户添加配置文件时,userID
表users
列中的列为空。但是应该根据class Dog():
def Bark():
print("woof")
Marley = Dog
Marley.Bark()
表的登录ID填写。
顺便说一下,我是Laravel的新人。 感谢。
答案 0 :(得分:1)
获取此类用户ID
$id = Auth::id();
然后将此值分配给配置文件中的用户属性,如
$profile->userID = $id
答案 1 :(得分:0)
保存个人资料时,请使用以下内容添加用户:
$profile->userHave = $user
有几件事:
您的Profile
模型不需要userID
可填写。这是由你的关系填补的,所以不应该是可填写的。
这个关系有点奇怪。它应该是您希望用于获取关系的属性的名称。例如,我会在您的个人资料中调用用户关系user
:
public function user()
{
return $this->belongsTo('App\User','userID');
}
使用此功能,您可以将用户添加到配置文件中,其中包含以下内容:
$profile->user = $user;
最后,考虑您是否确实需要个人资料模型。
您的个人资料模型中的所有属性都是用户的属性。如果您计划为每个用户提供个人资料,则您没有理由为个人资料设置不同的模型。