获取到外部laravel实例的路由

时间:2013-08-22 12:42:09

标签: laravel laravel-4 laravel-routing

我在服务器上运行了两个单独的Laravel实例/站点,并且希望能够在另一个的代码中为一个命名路由生成一个URL。

例如,第一个实例中存在以下命名路由: Route::get('users/my_account', array('uses' => 'UsersController@myAccount', 'as' => 'my_account'))

在第二个实例中,我想为上面的路线生成一个url。有没有人能想到一个干净的方法来做到这一点,而没有明确知道网址(即只知道路线名称'my_account')?

基本上我想将一个站点的RouteCollection暴露给另一个站点......

2 个答案:

答案 0 :(得分:0)

这是一个非常有趣的问题。没有本地支持的方式,从我所知道的,它永远不会。

你可以尝试加载第一个应用程序的路由文件,解析它的配置(你需要用于反向路由),构建一个Router实例并使用它,但我相信它不会很简单。

如果您真的有,我的意思是真的,使用反向路由的理由很充分,您可以尝试在第一个应用程序上构建一个小API。该API应该接收必要的参数,url($params)中使用的参数,并返回完整的URL(包含域和所有内容)。虽然,这会引入一些严重的性能问题。

恕我直言,坚持使用硬编码my_account,对第一个应用程序路径和/或控制器发表评论,说明它已在另一个项目中使用并继续:)

答案 1 :(得分:0)

我可以称之为肮脏的伎俩。假设您的文件系统中有以下结构,其中两个路径都是Laravel应用程序:

/path/to/apps/app1
/path/to/apps/app2

并且您希望将app1中的路径文件加载到app2中。你可以这样做:

include "../app1/apps/routes.php";
$url = URL::route('register');

瞧! ,虽然它对我有用,但还有一些要考虑的问题。

  • 包含该文件,肯定会覆盖该流程的当前路由集合。
  • 如果最后一次是真的,那么您可能会在视图中生成其他网址时遇到问题。
  • 域名将是当前的Laravel实例。这意味着您在app2中生成的网址将包含app1的域名。我相信这不是你想要的。但您始终可以使用URL::route('register', null, false)生成非绝对网址。
相关问题