Laravel destroy 多删除和单删除选择

laravel中的一个destroy代码

public function destroy($id)
{
    //.......

    $this->model->destroy($id);

    // ........
}

关于destroy中有如下思考,此种方法是对于单删除,
但对于多删除,考虑如下办法:
1、$id 可切换成 1,2,3,4类似格式,然后function 中处理成数组,删除
2、POST提交至function $_POST['ids'],但destroy中的$id,则是名存实亡,因为根本不会用到$id。

不知道大家平时都是怎么觖决的,好纠结

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 11

直接DB::whereIn的路过

7年前 评论

destroy 可以直接传数组和多个id的,没看源码吗?

$ids = is_array($ids) ? $ids : func_get_args();
7年前 评论

@oustn ,你可能误会我的意思了,我不是说$this->model->destroy($id),我是说public function destroy($id)
这里面的id

7年前 评论

@hiword 你也直接这样判断,把参数转化成数组,不是一个原理吗

public function destroy($ids)
{
    //.......
    $ids = is_array($ids) ? $ids : func_get_args();
    $this->model->destroy($ids);

    // ........
}
7年前 评论

@oustn 感谢你的回答,这些方法我都知道,但是我觉得不够优雅,我想寻找下有没有更加优雅的办法

7年前 评论

@oustn 天生强迫症,改不了了

7年前 评论

@hiword 不知道你的想法是啥,是想再写个批量删除的方法吗?但是看 laravel 的源码,很多都是这样处理的,不会分开写两个方法,一个处理单个删除,一个处理多个删除吧,无非就是参数不同而已,直接在方法里面加个参数判断,甚至还可以加个像你说的“1,2,3,4”这种格式的吧

$ids = is_array($ids) ? $ids : ( is_string($ids) ?explode (',',$ids) :func_get_args());

"2、POST提交至function $_POST['ids'],但destroy中的$id,则是名存实亡,因为根本不会用到$id。" 看不懂啥意思

7年前 评论

@oustn 2. 他的意思可能是 $id 这个参数用不到了

5年前 评论

:sparkler: :dolls: :dolls: :dolls:

4年前 评论

destroy无法批量删除,传入1,2,只会删除1是什么原因?

3年前 评论

如果我根据日期范围进行删除,该用什么办法呢

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!