2013-02-19 42 views
1

我想傳遞兩個參數,其中之一是一個電子郵件地址。是否有任何理由爲什麼urlencoded字符串會拋出404錯誤?

路線(也試過(:任何)

Route::any(
    'user/confirm_request/(:any?)/(:any?)', array(
              'uses' => '[email protected]_request')); 

控制器(也試過post_confirm_request()

public function get_confirm_request($email, $term) 
{ 
    //do stuff 
} 

最終,所有我想要做的是打該路線併發送電子郵件給這兩個參數的用戶。但我不斷收到404錯誤。該電子郵件被編碼和路線是這樣的:

/email%40gmail.com/someString 

我能拿出40%,它工作得很好(只是給了我一個錯誤的sendmail的)。 爲什麼%40會拋出404錯誤?它可能是Laravel的東西嗎?

回答

0

一個解決方案是將電子郵件作爲url參數傳遞。

首先,從路線中刪除第二個參數。 (你也可以在需要時同時刪除。)

Route::any('user/confirm_request/(:any?)', array('uses' => '[email protected]_request')); 

電子郵件隨後追加到操作URL,這樣的事情..

$url = URL::base() . '/user/confirm_request?email=' . $email; 

然後在你的控制器,你可以抓住這些數據。

public function get_confirm_request() 
    { 
    $email = Input::get('email'); 
    }