调用外部控制器Laravel


Calling external controllers, Laravel

application/controllers/admin/images/public function get_upload($id=null),控制器设置为restful = true

我如何从我的新闻控制器调用上面的函数?我尝试以下,但我得到404,但功能本身的工作…通过一个简单的$.post()调用工作(与全路由明显)

$image = Controller::call('admin.images@upload', array($news_id));

我该怎么做呢?

更新

即使使用HVMC,我仍然得到404执行HMVC::get('admin.images@upload', array('news_id'=>$news_id)

应用程序/控制器/admin/images.php

class Admin_Images_Controller extends Admin_Controller
{
     public $restful = true;
     public function get_upload($news_id)
     {

注:Admin_Controller已经存在并且已经加载,这与它无关

您正在寻找的是Lavarel不支持开箱即用的HMVC。我不使用Lavarel,如果我得到任何错误的信息,很抱歉,但快速搜索将我引导到这里,他们建议使用这个包。

经过进一步检查,似乎可以使用Route::forward():

在大多数情况下,你可以使用Route::forward()来实现你想要做的事情。

希望有帮助

我也遇到同样的问题。问题是,如果http类型(post, get, put, delete)不同,它将返回404。

假设你有2个控制器,图像和媒体。如果在图像控制器中有一个名为POST_UPLOAD的函数,在媒体控制器中有另一个名为GET_RESIZE的函数,从POST_UPLOAD调用GET_RESIZE将返回404,反之亦然

但如果GET_RESIZEPOST_RESIZE,错误将不会发生在相同的http类型

这意味着http类型必须相同。

这很糟糕,因为你需要维护RESIZE的2个功能,即GET_RESIZE &POST_RESIZE .

这是Laravel中没有记录的内容