【问题标题】:Form in Laravel 5.2 does not find routeLaravel 5.2中的表格找不到路线
【发布时间】:2016-05-23 01:58:11
【问题描述】:

我正在尝试通过表单发布一个简单的帖子,路由存在并且令牌在那里,但是提交时总是返回“404 Not Found”。

路线:

Route::group(['middleware' => ['web']], function () {
  Route::post('/cadastro', 'UsuarioPost@cadastro');
});

UsuarioPost 控制器:

class UsuarioPost extends Controller
{
    public function cadastro(Request $request)
    {
        return dd($_POST);
    }
}

用表单查看:

<form id="f_cadastro" method="POST" action="{{ URL::to('/cadastro') }}">
  {{ csrf_field() }}
  <button type="submit">Cadastrar</button>
</form>

在表单提交方面从 laravel 5.1 到 5.2 有什么新东西吗? 这在以前的版本中可以正常工作,即使路线中没有组。

【问题讨论】:

  • 你还有其他路线吗?
  • 使用cadastro 而不是/cadastro。另外,将URL::to( 更改为url(
  • Eduardo Pacios,我上面还有另一条路线,'Route::get('/', 'Home@home');',这条路线很好,我确实尝试将帖子放在上面, 结果相同
  • manix,我尝试将路线更改为 'Route::post('cadastro', 'UsuarioPost@cadastro');'和 'Route::post('/cadastro', 'UsuarioPost@cadastro');'动作为 {{ url('/cadastro') }} 和 {{ url('cadastro') }},都是一样的 404 Not Found :(

标签: php laravel-5 laravel-5.2


【解决方案1】:

我建议你用named routes代替这个策略,更方便。

Route::get('/profile', [
    'as' => 'profile.index',
    'uses' => 'ProfileController@index',
]);

然后您可以仅使用视图或代码生成 url

{{ route('profile.index') }}

【讨论】:

  • 是的,我确实改成了 Route::post
  • 是的,我的只是一个例子:)
【解决方案2】:

所以,终于工作了。

这笔交易是与 apache 合作的,而不是 laravel。 Apaches httpd.conf 文件(apaches 目录/conf/httpd.conf)默认禁用了 AllowOverride,这是 laravel 需要的。所以我不得不为“AllowOverride all”更改每一个“AllowOverride none”,并删除“Require all denied”行。

将我的 apache DocumentRoot 设置为我项目中的公用文件夹一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 2016-06-08
    • 1970-01-01
    • 2018-09-29
    • 2016-07-16
    • 2019-01-30
    • 2018-12-09
    相关资源
    最近更新 更多