表单验证

Laravel 5.6 - 表单验证官方文档

创建路由

Route::get('test','VerController@index');

Route::post('tosubmit','VerController@tosubmit');

在控制器中编辑代码

class VerController extends Controller
{
    //表单页面
    public function index()
    {
        return view('from.from');
    }

    //表单提交验证
    //这种是用自带的Request进行验证
//    public function tosubmit(Request $request)
//    {
//        $this->validate($request, [
//            'title'=>'required',
//            'content'=>'required|min:10'
//        ]);
//        return 'success';
//    }

    //这种是用自己写的Request,用php artisan make:request FromRequest生成
    public function tosubmit(Requests\FromRequest $request)
    {
        return 'success';
    }
}

生成自定义的Request

php artisan make:request FromRequest

FromRequest

/**
 * 判断用户是否有权限进行此请求。
 *
 * @return bool
 */
public function authorize()
{
    //别问为什么,就是要返回true
    return true;
}

/**
 * 获取适用于请求的验证规则。
 *
 * @return array
 */
public function rules()
{
    return [
        //这里写规则
        'title'=>'required',
        'content'=>'required|min:10'
    ];
}

/**
 * 获取已定义的验证规则的错误消息。
 *
 * @return array
 */
public function messages()
{
    return [
        'title.required' => 'A title is required',
        'content.required'  => 'A message is required',
    ];
}

第二种

直接在Controller里面定义规则和错误信息

public function yanzhen()
{
    $input = Input::except('_token');
    $relus = [
        //规则
        'name'=>'required|min:5'
    ];
    $message = [
        //错误信息
        'name.required' => '不能为空',
        'name.min' => '最少5个字符'
    ];
    //这里参数必须按照顺序(验证的内容,规则,错误信息)
    $vail = Validator::make($input,$relus,$message);
    if ($vail->passes()){
        return '通过验证';
    } else {
        //这里传入的是变量
        return back()->withErrors($vail);
    }
}

视图

<body>
    <div class="container">
        @if(count($errors)>0)
            @if(is_object($errors))
                { {--这里一定要获取$error->all()--} }
                @foreach($errors->all() as $error)
                    { { $error } }
                @endforeach
            @endif
        @endif
        { { Form::open(['url'=>url("yanzhen")]) } }
        { { Form::text('name') } }
        { { Form::submit('提交') } }
        { { Form::close() } }
    </div>
</body>
powered by GitbookEdit Time: 2024-06-06 18:25:40