错误 "Creating default object from empty value" Laravel 使用一对一数据库更新
Error "Creating default object from empty value" Laravel update using one-to-one database
我有一对一的数据库。它是不同 table 中的 Telepon。因此,每个 'siswa' 都有一个 'telepon'(电话号码)。 Telepon 的 'sometimes' 类型不是 'required'。它可以是空白的。
但是,如果它设置为空白,当我更新时会出现错误 "Creating default object from empty value"。
Telepon 模型中的代码:
class Telepon extends Model
{
protected $table = 'telepon';
protected $primaryKey = 'id_siswa';
protected $fillable = [
'id_siswa',
'nomor_telepon',
];
public function siswa() {
return $this->belongsTo('App\Siswa', 'id_siswa');
}
Telepon 的 Siswa 模型中的代码:
public function telepon() {
return $this->hasOne('App\Telepon', 'id_siswa');
}
这在控制器中进行更新:
public function update(Siswa $siswa, SiswaRequest $request){
$input = $request->all();
$siswa->update($input);
$telepon = $siswa->telepon;
$telepon->nomor_telepon = $request->input('nomor_telepon');
$siswa->telepon()->save($telepon);
$siswa->hobi()->sync($request->input('hobi_siswa'));
return redirect('siswa');
}
使用 null 合并运算符 ??
检查 null 或创建新模型实例:
$telepon = $siswa->telepon ?? new Telepon();
我有一对一的数据库。它是不同 table 中的 Telepon。因此,每个 'siswa' 都有一个 'telepon'(电话号码)。 Telepon 的 'sometimes' 类型不是 'required'。它可以是空白的。 但是,如果它设置为空白,当我更新时会出现错误 "Creating default object from empty value"。
Telepon 模型中的代码:
class Telepon extends Model
{
protected $table = 'telepon';
protected $primaryKey = 'id_siswa';
protected $fillable = [
'id_siswa',
'nomor_telepon',
];
public function siswa() {
return $this->belongsTo('App\Siswa', 'id_siswa');
}
Telepon 的 Siswa 模型中的代码:
public function telepon() {
return $this->hasOne('App\Telepon', 'id_siswa');
}
这在控制器中进行更新:
public function update(Siswa $siswa, SiswaRequest $request){
$input = $request->all();
$siswa->update($input);
$telepon = $siswa->telepon;
$telepon->nomor_telepon = $request->input('nomor_telepon');
$siswa->telepon()->save($telepon);
$siswa->hobi()->sync($request->input('hobi_siswa'));
return redirect('siswa');
}
使用 null 合并运算符 ??
检查 null 或创建新模型实例:
$telepon = $siswa->telepon ?? new Telepon();