1

我正在使用 Laravel 4。

我有一个需要可路由的旧网址。它的目的是什么并不重要,但它存在于贝宝系统中,并且会定期调用但不能更改(我知道这很荒谬)。

我意识到这不是 Laravel 应该采用的 url 格式,但这是将被调用的 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 路由 url,因为它在这个问题的顶部?

为了完整起见,我应该说这将永远是一个帖子而不是一个获取,但这不应该对解决方案产生任何影响。

4

2 回答 2

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'];
于 2013-08-11T15:57:08.403 回答
0

您可以使用路由重定向来屏蔽和结束 .php 路由,例如:

Route::get('forum/index', ['uses'=> 'PaypalController@ipbIpn']);
Route::redirect('forum/index.php', 'forum/index');
于 2020-02-24T17:06:09.007 回答