错误 "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();