我正在使用Laravel 4。
我有一个旧网址,该网址必须是可路由的。它的目的并不重要,但是它存在于贝宝系统中,将被定期调用但不能更改(我知道这很荒谬)。
我意识到这不是Laravel中应该采用的格式网址,但这是将被调用的网址,我需要找到一种路由方法:
http://domain.com/forum/index.php?app=subscriptions&r_f_g=xxx-paypal
(每个请求的xxx都不同)
我不知道如何使用laravel进行路由,我想将其路由到PaypalController @ ipbIpn方法,所以我尝试了类似的方法:
Route::post('forum/index.php?app=subscriptions&r_f_g={id}-paypal', 'PaypalController@ipbIpn');
但是这不起作用,实际上我什至无法使它起作用:
Route::post('forum/index.php', 'PaypalController@ipbIpn');
但是这会:
Route::post('forum/index', 'PaypalController@ipbIpn');
所以问题是,如何使用Laravel路由此问题顶部的网址?
为了完整起见,我总是说这将是一个职位,而不是获得,但实际上对解决方案没有任何影响。
使用此:
Route::post('forum/{file}', 'PaypalController@ipbIpn');
然后在控制器中使用
public function forum($file) {
$request = Route::getRequest();
$q = (array) $request->query; // GET
$parameters = array();
foreach($q as $key => $pararr) {
$parameters = array_merge($parameters, $pararr);
}
}
然后您可以通过例如访问get参数
echo $parameters['app'];
您可以使用路由重定向来屏蔽和结束.php路由ex:
Route::get('forum/index', ['uses'=> 'PaypalController@ipbIpn']);
Route::redirect('forum/index.php', 'forum/index');