我正在使用Laravel 5处理表单,跟进来自Openclassropms的关于Laravel 4的教程,这真的让我很难过。
无论如何,我试图在routes.php文件中更改这些行:
Route::get('users' , 'UsersController@getInfos');
Route::post('users', 'UsersController@postInfos');
这一行:
Route::controller('users', 'UsersController');
但这样做会破坏我的表单,我仍然可以看到输入文本区域,但提交它会给我以下错误:
RouteCollection.php第145行中的NotFoundHttpException
以下是我的控制器和模板:
<?php namespace App\Http\Controllers;
use Illuminate\Support\Facades\Input;
class UsersController extends Controller {
public function getInfos()
{
return \View::make('infos');
}
public function postInfos()
{
echo 'The name is ' . Input::get('nom');
}
}
@extends('tempform')
和
@section('content')
{!! Form::open(array('url'=>'users')) !!}
{!! Form::label('nom', 'Enter your name:') !!}
{!! Form::text('nom') !!}
{!! Form::submit('Submit') !!}
{!! Form::close() !!}
@stop
此外,根据教程中最初的说明,我使用了不同的网址:gappsl / users&gt;&gt; gappsl /用户/信息
答案 0 :(得分:2)
您必须在控制器中创建一个名为getIndex()
或postIndex()
的新方法,具体取决于您将使用的HTTP谓词。这样/users
路由就能正常工作。
答案 1 :(得分:0)
如果您使用Route::controller()
方法,那么它总是在寻找以HTTP Verb开头的函数。
在您的情况下,如果您想通过表单指出postInfos()
。然后,您需要将表单定义更改为:
{!! Form::open(array('url'=>'users/infos', 'method'=>'POST')) !!}
或强>
如果您对使用哪些路由有任何疑惑,只需转到应用程序根目录中的命令行并键入php artisan route:list
即可。
在那里,您可以找到哪些URI指向具有完整控制器路径的方法。
答案 2 :(得分:-1)
您需要将行格式更改为:
{!! Form::open(array('url'=>'users/post-infos')) !!}
解决您的postInfos()
功能