Laravel 4强制参数错误 [英] Laravel 4 mandatory parameters error
问题描述
你好,我正在与laravel 4一起工作,这不是第一次,但是我遇到的问题是香港专业教育学院从未有过的.
Hello im working with laravel 4 in a proyect and it´s not the first time but i have a problem that ive never had before.
Some mandatory parameters are missing ("key") to generate a URL for route "register".
我不知道如何解决它,我已经尝试了所有我想出的方法,但是没有结果.这些是我的路线:
I dont know how to fix it i've tryed everything i came up with but no results. These are my routes:
Route::get('register/{key}',array('before'=>'guest','as'=>'register','uses' => 'UserController@create'));
Route::post('register/{key}',array('before'=>'csrf','uses'=>'UserController@store'));
我的控制器: UserController类扩展了BaseController {
And my controller: class UserController extends BaseController {
public function getRegistro($key = null)
{
$invites = Invite::lists('key');
if (in_array($key, $invites)) {
return View::make('home.register')
->with('title','Register')
->with('key',$key);
}else{
Notification::error('Not a valid key to register.');
return Redirect::route('home');
}
}
public function postStore()
{
$validator = Validator::make(
array(
'username' => Input::get('username'),
'password'=>Input::get('password'),
'password_confirmation'=>Input::get('password_confirmation'),
'email'=>Input::get('email'),
'ubi'=>Input::get('ubi'),
'bio'=>Input::get('bio'),
),
array(
'username' => 'required|unique:users|',
'password'=> 'required|min:6|confirmed',
'password_confirmation'=> 'required|min:6',
'email'=> 'required|unique:users|email',
'ubi'=> 'required|min:5',
'bio'=>'required|min:10',
)
);
if ($validator->fails())
{
Notification::error($validator->messages());
return Redirect::route('register');
}else{
$user = new User;
$user->username = Input::get( 'username' );
$user->email = Input::get( 'email' );
$user->password = Input::get( 'password' );
$user->save();
}
当我发送一个空表格,但是当我输入信息(例如我的用户名为Bruce)时,就会发生此问题:
That problem happens when i send an empty form but when i put info for example my username as Bruce i get this error:
Method [validateBruce] does not exist.
请帮助
推荐答案
您的命名路由(register
)具有必需的参数({key}
),并且当您发布表单失败时,您将尝试重定向到没有密钥的命名路由.
Your named route (register
) has a required parameter ({key}
) and when you're posting your form if it fails you are trying to redirect to that named route with no key.
return Redirect::route('register');
您需要提供一个密钥以重定向到,例如:
You need to supply a key to redirect to, example:
return Redirect::route('register', array('your-key'));
如果不需要此参数,则可以在右花括号前放置一个问号?
.
If this parameter is not required then you can place a question mark ?
before the closing curly brace.
Route::get('register/{key?}', ...);
该参数现在是可选的.
关于您的第二个错误,我不知道.您是否正在使用某种模型验证器来进行保存?我会尝试从用户名规则数组中删除多余的管道|
.
As for your second error, I have no idea. Are you using some sort of model validator that validates when you save? I'd try removing the extra pipe |
from the username rules array.
这篇关于Laravel 4强制参数错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!