Laravel验证在提交后无法正常工作

时间:2017-11-06 09:26:35

标签: laravel

提交后未显示错误

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Cars;
use App\Images;
use DB;

$this->validate($request,[
        'name'=>'required|min:3',
        'specifications'=>'required|min:10'
]);

将值插入数据库。我想验证提交表单

public function store(Request $request)
{
    //
    $this->validate($request->all(),[
        'name'=>'required|min:3',
        'specifications'=>'required|min:10'
    ]);

    $cars = New Cars;
    $cars->name = $request->name;
    $cars->specifications = $request->specifications;
    $cars->price = $request->price;
    $cars->model_id = $request->model_id;
    $cars->year = $request->year;
    $cars->milage = $request->milage;
    if($cars->save()) {
        $id = DB::getPdo()->lastInsertId();
    }
    return redirect('home');
}

我显示了这样的错误,但没有为我工作

@if(count($errors) > 0)
      <div class="alert alert-danger">
        @foreach($errors->all() as $error)
            <p>{{ $error }}</p>
        @endforeach
      </div>
@endif

3 个答案:

答案 0 :(得分:0)

在此处使用->all()提供所有输入值以验证

$this->validate($request->all(),[

或者您可以尝试这样

public function store(Request $request)
{
    $validatedData = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

    // The blog post is valid...
}

显示错误

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

答案 1 :(得分:0)

在控制器方法上添加这段代码。

return back()->withErrors()->withInput()

您还可以使用old(field_name)

访问旧输入值

答案 2 :(得分:0)

首先,像这样编辑你的方法:

string

并且在此方法中,请编辑您的重定向路由并确保您的重定向网址,将您重定向到包含错误消息的页面:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Cars;
use App\Images;
use DB;
use Validator;

并在您的刀片模板中显示错误消息,请执行以下操作:

public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
                    'name'=>'required|min:3',
                    'specifications'=>'required|min:10'
                ]);
                if ($validator->fails()) {
                    return redirect(route('make your route here '))
                        ->withErrors($validator)
                        ->withInput();
                }

            $cars = New Cars;
            $cars->name = $request->name;
            $cars->specifications = $request->specifications;
            $cars->price = $request->price;
            $cars->model_id = $request->model_id;
            $cars->year = $request->year;
            $cars->milage = $request->milage;
            if($cars->save()) {
                $id = DB::getPdo()->lastInsertId();
            }
            return redirect('home');
    }