我有一个简单的方法,它在我的控制器中定义。我需要能够从我的控制器调用它
我的控制器代码如下:
public function store(Request $request) {
$data = $request->except('_token');
$name = "form1_sections/" . $data['nextTab'] . "_form";
parse_str($data['inputs'], $output);
$rules = $this->call_user_func($data['currentTab']); //need to call section1()
//here if $data['currentTab'] is section1
$validator = Validator::make($output, $rules);
if ($validator->passes()) {
return ["view" => view("$name")->render(), "isValid" => true];
} else {
return ["isValid" => false, "msg" => json_encode([
'errors' => $validator->errors()->getMessages(),
'code' => 422
])
];
}
}
function section1() {
return [
'startDate' => 'required| date',
'endDate' => 'required| date|different:startDate',
'cv' => 'mimes:pdf,doc,docx'
];
}
//alo have section2(), section3() etc.
$data['currentTab'] 返回一个 section1() 的字符串,非常感谢任何帮助。
就像在任何实例化类中一样:
$foo = $this->section1();
现在$foo
包含您返回的数组。您可能也应该将该方法表示protected
为 。
由于您想根据任意字符串动态调用方法:
$foo = call_user_func('section1');
或者在你的情况下
$foo = call_user_func($data['currentTab']');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句