首页 > 解决方案 > Laravel simple validation doens't work on resource method

问题描述

Basically i have this form on userblog/create.blade.php

<form action="{{route('userblog.store')}}" method="POST">
    {{csrf_field()}}
    <div class="form-group">
        <div class="row">
            <div class="col-md-12">
                <label style="font-family: SansBold">تیتر وبلاگ:</label>
                <input type="text" name="blog_title"
                       class="form-control">
            </div>
        </div>
    </div>

    <div class="text-right">
        <button type="submit" class="btn btn-primary">
            Save
            <i class="icon-arrow-left13 position-right"></i></button>
    </div>

    <br/>
</form>

with this route on web.php

Route::group(['middleware' => ['auth:web'], 'prefix' => 'page'], function () {
    $this->resource('userBlog', 'UserBlogController');
});

now I'm trying to check posted form on Controller with this code and store them on database:

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'blog_title' => 'required|min:10',
        'blog_content' => 'required|min:10',
    ]);

    if ($validator->failed()) {
        return back();
    } else {
      dd('store on database');
    }
}

in this my code i get

Route [userblog.store] not defined

error and when i change form action to /page/userBlog i get [] on $validator

标签: phplaravellaravel-5.6

解决方案


The routes name should be like resource name. Replace your resource name or Route name like:

$this->resource('userblog', 'UserBlogController');

or

.. action="{{route('userBlog.store')}}"

BTW, It's not a validation error. Just fix your route.


推荐阅读