首页 > 解决方案 > 使用路由资源表单没有发布到存储功能

问题描述

我有一个表格,在成功验证后应该显示所需的结果。但在按钮按下浏览器显示页面已过期由于不活动。请刷新并重试。

查看页面

<form class="form-horizontal" method="POST" action="{{action('BookController@store')}}">
                <div class="row" style="padding-left: 1%;">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>Book Name</label><span class="required">*</span>
                                <input type="text" maxlength="100" minlength="3" required="required" runat="server" id="txtBookName" class="form-control" autocomplete="off" autofocus="autofocus" />
                            </div>                            
                            <div class="form-group">
                                    <button type="submit" class="btn btn-primary">Submit</button>        
                            </div>            
                        </div>
                </div>
        </form>

路线代码

//web.php
Route::resource('book','BookController');

控制器代码

class BookController extends Controller
{   

    public function index()
    {
        //
    }


    public function create()
    {
        return view('pages.book');
    }
    public function store(Request $request)
    {
        $validatedInput = $request -> validate([
            'txtBookName' => 'required|string|min:3|max:100'
        ]);

        return $validatedInput;
    }
}

表单网址 http://127.0.0.1:8000/book/create

在提交按钮按下时,页面被重定向到 http://127.0.0.1:8000/book并显示The page has expired due to inactivity. Please refresh and try again.

标签: laravellaravel-5routes

解决方案


您可以通过调用以下方式在表单中发布 CSRF 令牌:

{{ csrf_field() }}

或者在 app/Http/Middleware/VerifyCsrfToken.php 中排除你的路由:

protected $except = [
    'your/route'
];

推荐阅读