Laravel 5.1 删除关系

麦志坤*_*麦志坤 5 php relationships laravel

我的模型关系是 oneToMany 例如:PatientToSample

患者型号:

class Patient_Model extends Model implements Jsonable{

    use SoftDeletes;

    protected $table = 'patients';

    public function samples(){
        return $this->hasMany('App\Models\Sample_Model','code','patient_id');
}


}
Run Code Online (Sandbox Code Playgroud)

样品型号:

class Sample_Model extends Model{

    use SoftDeletes;

    protected $table = 'samples';

    public function patient(){
        return $this->belongsTo('App\Models\Patient_Model','patient_id','code');
}

}
Run Code Online (Sandbox Code Playgroud)

我认为使用功能删除患者和样本

public function delete(Request $request){
    $patient = Patient_Model::withTrashed()
        ->where("id",$request->get("id"))
        ->delete();

    return json_encode($patient);
}
Run Code Online (Sandbox Code Playgroud)

但现在只删除Patient....

sho*_*ode 4

这是一种方法。

public function delete(Request $request){
    $patient = Patient_Model::withTrashed()
        ->find($request->get("id"));

    $patient->samples()->delete();
    $patient->delete();
    return json_encode($patient);
}
Run Code Online (Sandbox Code Playgroud)

还有一种方法可以将关系删除附加到父模型的删除事件,如此处所述