Laravel所有输入字段都是必需的

时间:2015-02-25 15:40:56

标签: validation laravel

我有大约50个输入字段,它们都是必需的。 有没有一种简单的方法可以检查它们是否全部固定好? 因此,我不必手动将每个字段放入我的模型中,并且验证规则为" required"?

5 个答案:

答案 0 :(得分:1)

我知道这已经很晚了,但我写了一个简单的函数为我自己解决这个问题

foreach ($request->except('_token') as $data => $value) {
  $valids[$data] = "required";
}

$request->validate($valids);
祝你好运!

答案 1 :(得分:1)

您可以使用下面的代码。这对我来说是必需的。

$request->validate([
        '*' => 'required',
    ]);

答案 2 :(得分:0)

目前无法避免引用rules()方法中的每个50个字段,因为返回的数组经历了这个:

/**
 * Explode the rules into an array of rules.
 *
 * @param  string|array  $rules
 * @return array
 */
protected function explodeRules($rules)
{
    foreach ($rules as $key => &$rule)
    {
        $rule = (is_string($rule)) ? explode('|', $rule) : $rule;
    }
    return $rules;
}

您可以在Validator的构造函数中看到它:https://github.com/illuminate/validation/blob/master/Validator.php

答案 3 :(得分:0)

 foreach($req->except('_token') as $data=>$value){
    $valids[$data] = "required";
 }

 $validator=  validator($req->all(),$valids);
 if ($validator->fails()) {
 foreach($validator->messages()->getMessages() as $key=>$val){
            $response["$key"]=$val;
        }
        return response()->json([
            'success'   => 0,
            'errors'    =>$response,
        ]);

答案 4 :(得分:0)

您还可以像这样使用validator中的Facades

try {
    foreach ($request->except('_token') as $data => $value) {
        $valids[$data] = "required";
    }

    $validator = validator($request->all(), $valids);
    if ($validator->fails()) {
        foreach ($validator->messages()->getMessages() as $key => $val) {
            $response["$key"] = $val;
        }
        return redirect()->back()
            ->withErrors($response)
            ->withInput();
    }
}catch(\Exception $e){
    die($e->getMessage()) ;
}