【问题标题】:Laravel 4 mandatory parameters errorLaravel 4 强制参数错误
【发布时间】:2013-07-11 19:31:54
【问题描述】:

您好,我在一个项目中使用 laravel 4,这不是第一次,但我遇到了以前从未遇到过的问题。

Some mandatory parameters are missing ("key") to generate a URL for route "register".

我不知道如何解决它我已经尝试了所有我想出的但没有结果。这些是我的路线:

Route::get('register/{key}',array('before'=>'guest','as'=>'register','uses' => 'UserController@create'));
Route::post('register/{key}',array('before'=>'csrf','uses'=>'UserController@store'));

还有我的控制器: 类 UserController 扩展 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,我得到了这个错误:

Method [validateBruce] does not exist.

请帮忙

【问题讨论】:

    标签: validation routes laravel laravel-4


    【解决方案1】:

    您的命名路由 (register) 有一个必需参数 ({key}),当您发布表单时,如果它失败,您会尝试在没有密钥的情况下重定向到该命名路由。

    return Redirect::route('register');
    

    您需要提供一个键来重定向到,例如:

    return Redirect::route('register', array('your-key'));
    

    如果不需要此参数,则可以在右大括号前放置问号?

    Route::get('register/{key?}', ...);
    

    该参数现在是可选的。

    至于你的第二个错误,我不知道。您是否使用某种模型验证器在您保存时进行验证?我会尝试从用户名规则数组中删除额外的管道 |

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-30
      • 2014-08-14
      • 2014-06-20
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      • 2013-11-14
      • 2015-11-09
      相关资源
      最近更新 更多