调用外部控制器,Laravel

时间:2013-01-10 10:52:51

标签: php controller routes call 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)

应用/控制器/管理/ images.php

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

P.S。 Admin_Controller存在并且已加载,它与它无关

2 个答案:

答案 0 :(得分:1)

你正在寻找的是HMVC,而Lavarel并不支持开箱即用。我不会使用Lavarel,如果我收到任何信息有误,请快速搜索directs me here,他们建议您使用this bundle

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

  

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

希望有所帮助:)

答案 1 :(得分:1)

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

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

但如果GET_RESIZEPOST_RESIZE,则不会发生错误,即相同的http类型。

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

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

这是Laravel中未记录的内容。