Php 在一个控制器函数中使用laravel delete()三次

Php 在一个控制器函数中使用laravel delete()三次,php,laravel,eloquent,Php,Laravel,Eloquent,我正要问,通过使用这种方法,我可以很容易地看到有三(3) 调用服务器的次数,所以如果我在模型中使用以下方法: $this->subTown()->delete(); parent::someFunction(); // not the actual code 是否还有三(3)次呼叫后台服务器或模型将执行此操作 同一任务仅在一(1)次呼叫中完成 因为我在控制器而不是模型中编写了这段代码 我已经用我的方法删除了这两个关系或层次结构 情形 城市可以有很多城镇,城镇也可以有很多子城镇,所以

我正要问,通过使用这种方法,我可以很容易地看到有三(3)

调用服务器的次数,所以如果我在模型中使用以下方法:

$this->subTown()->delete(); parent::someFunction(); // not the actual code
是否还有三(3)次呼叫后台服务器或模型将执行此操作

同一任务仅在一(1)次呼叫中完成

因为我在控制器而不是模型中编写了这段代码

我已经用我的方法删除了这两个关系或层次结构

情形

城市可以有很多城镇,城镇也可以有很多子城镇,所以什么时候

删除城市,然后在控制器的函数中调用这段代码

$id = Input::get('id');  //return response()->json($id);
$obj = SubTown::where('city_id',$id)->delete();
$objj = Town::where('city_id', $id)->delete();
$ok= City::find($id)->delete();
工作正常,但我想知道最好的方法

有谁能以最好的方式引导我,因为根据我的说法,它会三次呼叫服务器


提前感谢

您可以通过设置外键在数据库中使用
cascade delete
。这取决于你的数据库管理系统。可能会重复感谢每一个。你能告诉我使用这种方法以后我会遇到什么问题吗?没有特别的问题,只是运行三个查询不是最理想的。如果你设置了关系,你就可以做
$city->town->subtown->delete()
$city->town->delete()
$city->delete()
(抱歉,编辑,使用
有许多()关系,您必须循环,但这个想法仍然有效),并且可以轻松地在
城市
模型上编写一个方法(将
$City
替换为
$this
),在调用
$City
以删除时自动执行此操作。建议的副本显示了该逻辑,但假设您已经设置了关系。