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