我正在使用Laravel 4。
我有一个需要可路由的旧网址。它的目的是什么并不重要,但它存在于paypal系统中,并且会定期调用但不能更改(我知道这很荒谬)。
我意识到这不是url应该在Laravel中采用的格式,但这是将被调用的url,我需要找到一种方法来路由它:
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路由网址,因为它位于此问题的顶部?
为了完整性,我应该说这总是一个帖子而不是一个获取,但这不应该对解决方案产生任何影响。
答案 0 :(得分:0)
使用此:
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);
}
}
然后,您可以通过例如
访问获取参数echo $parameters['app'];
答案 1 :(得分:0)
您可以使用路由重定向来屏蔽和终止.php route ex:
Route::get('forum/index', ['uses'=> 'PaypalController@ipbIpn']);
Route::redirect('forum/index.php', 'forum/index');