【问题标题】:Call form request from controller based on request input根据请求输入从控制器调用表单请求
【发布时间】:2017-03-29 03:52:04
【问题描述】:

我有一个接受输入的控制器。此输入由请求验证 (POSRequest) 解析。如果请求验证成功,则将请求传递到控制器。标准 laravel 东西。

我必须在控制器 POSRequest $requests 中输入提示才能触发请求验证,如何根据 POSRequest $request 中提供的输入调用其他请求?

这里有一些代码可以稍微澄清一下
public function process(POSRequest $request){ ... }

我的所有请求都来自 process 函数并基于输入$requests 我需要调用其他函数:
private function StartRequest(POSStartRequest $request) { ... }
private function CheckRequest(POSCheckRequest $request) { ... }

我如何从进程函数中的控制器内部调用这些函数并将 POSRequest 转换为其他函数之一请求?

提前谢谢!

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.4


    【解决方案1】:

    您可以在控制器方法中手动创建验证器

    public function process(Request $request) {
            $rulesFirstRequest = ['field1' => 'required', 'field2' => 'required'];
            $rulesSecondRequest = ['field12' => 'required', 'field22' => 'required'];
    
            $validator1 = Validator::make($request->all(), $rulesFirstRequest);
            $validator2 = Validator::make($request->all(), $rulesSecondRequest);
    
            if ($validator1->fails()) {
                //do your stuff
                if ($validator2->fails()) {
                    //do your stuff    
                }
            }
            // next stuff
        }
    

    【讨论】:

    • 感谢您的回复!我知道我可以做到,这样做的问题是我所有的逻辑都在一个文件中,因此控制器会非常大。我真的很想把它放在单独的请求中
    • 您可以手动声明处理验证逻辑的特定类
    • 愿意举个例子吗?
    猜你喜欢
    • 2012-01-19
    • 2011-08-20
    • 2021-05-16
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    相关资源
    最近更新 更多