API Request,按照《Laravel项目开发规范》每个Controller中的方法都只对应一个request文件吗?

API Request,按照《Laravel项目开发规范》每个Controller中的方法都只对应一个request文件吗?例如:orderList方法有参数page,status,date等,orderDetail方法有参数orderId。或者有两个列表方法参数有只是部分不同,大多相同,也是需要加两个request文件吗? 在同一控制器中不同方法的验证,可以在同一个request文件中完成吗?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

让你的 validate 支持场景验证 三年前写的,我觉得应该是你想要的。

2年前 评论
讨论数量: 7

request 不是可以 request->get('page') request->post('page') request->get('status') request->post('status') request->get('orderId') request->post('orderId')

2年前 评论

是的,应当做到单一职责。

你可以把它们有交叉的部分抽离,然后继承。

2年前 评论
 public function rules()
    {
        $routeAction = explode('@', $this->route()->getActionName())[1];
        switch ($routeAction) {
            case 'createOrder':
                return [
                    'name'           => ['required'],
                    'phone'          => ['required']
                ];
            case 'pay':
                return [
                    'order_id' => ['required']
                ];
            default:
                return [];
        }
    }
2年前 评论
wangyou (楼主) 2年前
sinmu 2年前

最好这样,我之前也试着合在一个文件中,但这样不好维护,改了它相当于影响了两个控制器方法

2年前 评论

让你的 validate 支持场景验证 三年前写的,我觉得应该是你想要的。

2年前 评论

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