Yii2 如何处理删除时的完整性约束冲突?
我有行,其中一些行无法删除,因为它引用了其他表,而另一些行可以删除 我想要的是删除可以删除的行,保留其他不能删除的行 到目前为止,我的代码是Yii2 如何处理删除时的完整性约束冲突?,yii2,Yii2,我有行,其中一些行无法删除,因为它引用了其他表,而另一些行可以删除 我想要的是删除可以删除的行,保留其他不能删除的行 到目前为止,我的代码是 $tkota = TbKota::find()->all(); foreach($tkota as $kota){ if($kota->delete()){ echo "del success<br/>";
$tkota = TbKota::find()->all();
foreach($tkota as $kota){
if($kota->delete()){
echo "del success<br/>";
}else{
echo "fail ".$kota['api_id']."<br/>";
}
}
而不是在删除记录时显示成功,在无法删除记录时显示失败
我的代码怎么了
提前感谢。foreach($kota作为$kota){
foreach($tkota as $kota){
try {
if($kota->delete()){
echo "del success<br/>";
}
} catch (\Exception $e) {
echo "fail ".$kota['api_id']."<br/>";
}
}
试一试{
如果($kota->delete()){
回声“del success
”;
}
}捕获(\异常$e){
echo“失败”。$kota['api_id'].“
”;
}
}
这个会更好
使用yii\db\IntegrityException
使用yii\web\NotFoundHttpException
使用
尝试…捕获。
foreach($tkota as $kota){
try {
if($kota->delete()){
echo "del success<br/>";
}
} catch (\Exception $e) {
echo "fail ".$kota['api_id']."<br/>";
}
}
foreach($tkota as $kota){
$connection = \Yii::$app->db;
$transaction = $connection->beginTransaction();
try {
$kota->delete();
$transaction->commit();
return $this->redirect(['user/view', 'id' => $model->id]);
}catch (IntegrityException $e) {
$transaction->rollBack();
throw new \yii\web\HttpException(500,"YOUR MESSAGE.", 405);
}catch (\Exception $e) {
$transaction->rollBack();
throw new \yii\web\HttpException(500,"YOUR MESSAGE", 405);
}
}