【问题标题】:Combine validated date and non-validated data to store in laravel结合验证日期和未验证数据存储在 laravel 中
【发布时间】:2019-01-03 01:05:52
【问题描述】:

这里我有两个输入字段,分别是姓名和年龄。

我想验证 name,而不是 age

如何将这两个值发送到存储。

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

//Here i wanna add 'age' along with 'name' in $request
//Then i must store.

Pastor::create($request->all());

【问题讨论】:

    标签: php laravel validation store laravel-5.6


    【解决方案1】:

    $request->all() 已经发送了您请求中的任何内容。但是如果你喜欢,你可以专门传递请求值来创建这样的方法:

    Pastor::create([
       'name'=> $request->name,
       'age' => $request->age
       //any other fields
    ]);
    

    我假设你已经命名了你的输入,就像我已经传递给 create 方法一样,它应该可以工作。

    【讨论】:

    • 即使我的代码可以运行 Mr.Haider Ali,我也想在不验证的情况下存储年龄
    • @SamuelHenry 是的,所以代码是正确的,您没有将年龄字段传递给验证器规则数组进行验证。并将其直接传递给创建方法。所以它未经验证
    【解决方案2】:

    使用 Laravel 的 Validator 类。假设你有UserController

    Use Validator;
    Use App\User;
    
    class UserController extends Controller
    {
        // Your Validator
        protected function yourValidatorName(array $data)
        {
            $rules = ['name'=>'required'];
            return Validator::make($data,$rules);;
        }
    
        // Your Main Function
        public function yourFunctionName(Request $request)
        {
            $isValid = $this->yourValidatorName($request->all());
            if(!isValid->fails())
            {
                // your code here (validation passed)
            }
            else
            {
                 // your code here (validation failed)
            }
        }
    }
    

    【讨论】:

    • 即使我的代码工作 Mr.Demonowh,我也想存储年龄而不进行验证。希望你得到我
    • 是的 .. 这就是为什么我们验证了名称 .. 但没有验证年龄 .. 看看 $rules 变量 ..
    【解决方案3】:

    您只需检查名称字段即可

    $this->validate($request,[
            'name' => 'required|min:3|max:200',
        ],[
            'name.required' => 'name is a required field.',       // custom messages you can omit them 
            'name.min' => ' Name must be at least 3 characters.',  // custom message for minimum characters 
            'name.max' => ' Name should not be greater than 200 characters.', // custom message for maximum characters 
        ]);
    Pastor::create($request->all());
    

    没有自定义消息

    $this->validate($request,[
        'name' => 'required|min:3|max:200',
    ]);
    Pastor::create($request->all());
    

    【讨论】:

    • 即使我的代码可以工作 Mr.Faizan Fayaz,我也想存储年龄而不进行验证。希望你得到我 -
    • 所以不要在前端或后端对年龄字段进行任何验证
    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 2020-01-14
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    相关资源
    最近更新 更多