【问题标题】:Laravel, Submitting GET form doesn't trigger routeLaravel,提交 GET 表单不会触发路由
【发布时间】:2015-06-16 08:52:09
【问题描述】:

所以我有一个非常奇怪的问题发生在我有一个表单提交为 POST 并触发路由正常,而如果表单提交为 GET 它不会被触发。这只是最奇怪的事情,其简化形式的代码如下所示:

作品

路线

route::post('/contributions/finalise', [ 'as' => 'contributions.finalise', 'uses' => function() {
    dd('i get output');
}]);

表格

{!! Form::open(['route' => 'contributions.finalise', 'method' => 'POST']) !!}

    {!! Form::input('hidden','amount', null, ['id' => "contribute-amount"]) !!}

    <button type="submit">Submit</button>

{!! Form::close() !!}

不起作用

路线

route::get('/contributions/finalise', [ 'as' => 'contributions.finalise', 'uses' => function() {
    dd('i DON'T get output, only a white screen is shown.');
}]);

表格

{!! Form::open(['route' => 'contributions.finalise', 'method' => 'GET']) !!}

    {!! Form::input('hidden','amount', null, ['id' => "contribute-amount"]) !!}

    <button type="submit">Submit</button>

{!! Form::close() !!}

如您所见,它们非常相似,但 GET 不起作用?我在这里错过了一些非常基本的东西吗?

感谢您的帮助

【问题讨论】:

    标签: php laravel get


    【解决方案1】:

    您的发布请求显示什么错误? 我认为这将是 CSRF Token 的问题。在您的表单中添加 CSRF 令牌。

    {!! Form::open(['route' => 'contributions.finalise', 'method' => 'POST']) !!}
        // Add CSRF Field
        {!! csrf_field() !!}
    
        {!! Form::input('hidden','amount', null, ['id' => "contribute-amount"]) !!}
    
        <button type="submit">Submit</button>
    {!! Form::close() !!}
    

    【讨论】:

    • 使用 Form::open 语法时会自动添加 CSRF 令牌,因此这不是问题。绝对没有错误输出只是一个空白的白色屏幕,什么都没有。发布作品没有任何问题,它的 GET 不起作用
    • 从 laravel.log 文件中检查错误storage/logs/laravel.log
    • 没有相关的,就像我说根据 larval 没有发生错误
    【解决方案2】:

    原来有一条我没有注意到的冲突路线,因为贡献也是一种资源,所以它有一大堆我没有使用的路线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 2018-11-08
      • 2019-02-06
      相关资源
      最近更新 更多