我想使用 Eloquent model 更新我的数据库中的记录。我在更新user_profile
表格时遇到错误,where id is not null
。
用户模型
class User extends Model
{
public function profile()
{
return $this->hasOne('App\Models\Common\UserProfile');
}
}
UserProfile模型
class UserProfile extends Model
{
public function user()
{
return $this->belongsTo('\App\Models\User');
}
}
控制器
$user->fill($data);
$user->save();
$user->profile->fill($data);
$user->profile->save();
在MySQL查询中,它看起来像这样:
UPDATE users, user_profiles
SET users.name='Test Name',
user_profiles.email='test@gmail.com'
WHERE users.id=1
AND user_profiles.user_id=1;
我知道MySQL查询,但我是Eloquent
的新手,我希望在Eloquent model
中执行此操作。也许这里有一些可以解释 magic 在Eloquent
中如何运作。
答案 0 :(得分:1)
默认情况下,eloquent假定任何模型都有id
列作为主键。如果不是这样,你需要注册"主键
protected $primaryKey = 'user_id';
在模型类中。