类似于__construct函数,但用于LARAVEL上的特定函数

时间:2019-05-03 03:44:40

标签: php laravel

类似于__construct函数的函数,但用于特定函数。

我的路线

Route::resource('form00', 'Form00Controller');
Route::resource('form001', 'Form001Controller');
........ and more

我在Form00Controller中的__contsruct

public function __construct()
    {
        $this->validate(request(), [
            'projectName' => 
                array(
                    'required',
                    'regex:/(^([a-zA-Z]+)(\d+)?$)/u'
                )
        ];
    }

我的另一个Form00Controller函数

    public function create()// this function and another not effected
    {
        return view('form00.create');
    }

    public function store(Request $request)//__construct just for this function
    {

        $requestData = $request->all();

        Form00::create($requestData);

        return redirect('form00')->with('flash_message', 'Form00 added!');
    }

我只需要为函数存储进行验证,而不必更改该函数。

1 个答案:

答案 0 :(得分:0)

这是自定义表单请求的完美示例,您可以遵循此tutorial

基本上,您会得到

public function store(StoreFormFormRequest $request)//__construct just for this function
    {

        $requestData = $request->all();

        Form00::create($requestData);

        return redirect('form00')->with('flash_message', 'Form00 added!');
    }

然后您将在StoreFormFormRequest中拥有一个app/Http/Requests类,就像

class StoreFormFormRequest extends FormRequest {

    public function rules() {
        return [
            'projectName' => 'required|regex:/(^([a-zA-Z]+)(\d+)?$)/u'
        ]    
    }
}

验证将自动触发,如果通过验证,将执行控制器的代码。