“错误”;“从空值创建默认对象”;使用一对一数据库更新Laravel

“错误”;“从空值创建默认对象”;使用一对一数据库更新Laravel,laravel,laravel-5.2,Laravel,Laravel 5.2,我有一对一的数据库。这是另一张桌子上的Telepon。因此,每个“siswa”都有一个“telepon”(电话号码)。Telepon的“有时”类型不是“必需”。它可以是空白的。 但是,如果它设置为空,则在更新时会出现错误“从空值创建默认对象” Telepon模型中的代码: class Telepon extends Model { protected $table = 'telepon'; protected $primaryKey = 'id_siswa';

我有一对一的数据库。这是另一张桌子上的Telepon。因此,每个“siswa”都有一个“telepon”(电话号码)。Telepon的“有时”类型不是“必需”。它可以是空白的。 但是,如果它设置为空,则在更新时会出现错误“从空值创建默认对象”

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 coalesce运算符
??
检查null或创建新的模型实例:

$telepon = $siswa->telepon ?? new Telepon();