Php Laravel 5.1删除关系
我和模特的关系只有一个月 病人模型:Php Laravel 5.1删除关系,php,laravel,relationships,Php,Laravel,Relationships,我和模特的关系只有一个月 病人模型: 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'); } }
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');
}
}
样本模型:
class Sample_Model extends Model{
use SoftDeletes;
protected $table = 'samples';
public function patient(){
return $this->belongsTo('App\Models\Patient_Model','patient_id','code');
}
}
我想使用删除患者和样本的功能
public function delete(Request $request){
$patient = Patient_Model::withTrashed()
->where("id",$request->get("id"))
->delete();
return json_encode($patient);
}
但现在只删除患者….这是一种方法。
还有一种方法可以将关系删除附加到父模型的删除事件,如前所述。迁移中是否设置了约束? 只需写入示例表迁移行:
$table->foreign('patient_id')
->references('id')
->on('patients')
->onDelete('cascade');
欲了解更多信息:请查看此信息:OP所寻找的可能不是此信息的副本。您正在控制器中执行此操作。OP希望自动删除相关行,而不需要您给出的答案。我可能误解了这个问题,但这只是对OP发布的确切代码的简单修改,在我看来,在删除父模型时,他正在尝试删除关系,如以下几行所述:“我想使用删除患者和样本”功能。但现在只删除患者。
$table->foreign('patient_id')
->references('id')
->on('patients')
->onDelete('cascade');