Laravel在加载页面时执行POST路由


Laravel executes the POST route upon loading page

所以我在首页上有一个表格:

{{ Form::open(array('url' => URL::to('', array(), true))) }}
        <p>
            {{Form::label('author') }}
            {{Form::text('author') }}
        </p>
        <p>
            {{Form::label('title') }}
            {{Form::text('title') }}
        </p>
        <p>
            {{Form::label('message') }}
            {{Form::text('message') }}
        </p>
        <p>
            {{ Form::submit() }}
        </p>
{{ Form::close() }}

以下是我的路线:

Route::get('/', function()
{
    /* unrelated stuff here */
});
Route::post('/', function()
{
    /* testing */
    print_r("DONE!");
    exit;
});

所以我基本上是在测试我提交的表格是否有效。但事实并非如此。出于某种原因,POST方法是在我加载首页时执行的,而不是在提交表单时执行的。为什么会这样?我该如何解决?

您的表单url应该指定为张贴到/-

{{ Form::open(array('url' => '/')) }}

为了重定向回主页,你应该像这样修改你的帖子方法-

Route::post('/', function()
{
    /* testing */
    print_r("DONE!");
    return Redirect::to('/');
});

这是重定向的文档。

我建议您使用直接路由:

{{ Form::open(array('url' => URL::to('/submitForm', array(), true))) }}

然后:

Route::post('/submitForm', function()
{
    /* testing */
    print_r("DONE!");
    return redirect()->route('/');
});