Php 呼叫外部控制器,Laravel
具有Php 呼叫外部控制器,Laravel,php,controller,routes,call,laravel,Php,Controller,Routes,Call,Laravel,具有application/controllers/admin/images/和public函数get\u upload($id=null)其中控制器设置为restful=true 如何从我的新闻控制器调用上述函数。我尝试了以下方法,但是得到了404,但是函数本身可以工作。。。通过一个简单的$.post()调用是有效的(显然是完整的路由) 你知道我该怎么做吗 更新 即使使用HVMC,我仍然可以执行404执行HMVC::get('admin')。images@upload,数组('news\u i
application/controllers/admin/images/
和public函数get\u upload($id=null)
其中控制器设置为restful=true
如何从我的新闻控制器调用上述函数。我尝试了以下方法,但是得到了404,但是函数本身可以工作。。。通过一个简单的$.post()
调用是有效的(显然是完整的路由)
你知道我该怎么做吗
更新
即使使用HVMC,我仍然可以执行404
执行HMVC::get('admin')。images@upload,数组('news\u id'=>$news\u id)
applications/controller/admin/images.php
class Admin_Images_Controller extends Admin_Controller
{
public $restful = true;
public function get_upload($news_id)
{
另外,管理员控制器存在且已加载,它与之无关。您要查找的是Lavarel不支持的现成功能。如果有任何信息出错,我不使用Lavarel,非常抱歉,请快速搜索,他们建议使用 经进一步检查,您似乎可以使用: 在大多数情况下,您可以使用Route::forward()来实现您想要做的事情
希望有帮助:)我也遇到了同样的问题。问题是,如果http类型(post、get、put、delete)不同,它将返回404 例如,假设您有两个控制器,图像和媒体。如果图像控制器中有一个名为
POST\u UPLOAD
的函数,媒体控制器中有另一个名为GET\u RESIZE
的函数,则从POST\u UPLOAD
调用GET\u RESIZE
将返回404,反之亦然
但是如果GET\u RESIZE
是POST\u RESIZE
,则不会出现相同的http类型的错误
这意味着http类型必须相同
这是不好的,因为您需要维护2个功能RESIZE
ieGET\u RESIZE
&POST\u RESIZE
这是Laravel中没有记录的问题。即使使用HMVC,问题仍然存在。我仍然得到
404
执行HMVC::get('admin)。images@upload,数组('news_id'=>$news_id))
Hmmm尝试一下:$result=\Lavarel\Routing\Route::forward('get','/admin/images/upload')
(或您为该方法注册的任何路由)?我如何发送$news\u id
变量?从它可以得到如下信息:http://localhost/controller/method/arguments
(大多数框架都支持这种类型的URI路由),所以我假设您可以这样做:$result=\Lavarel\routing\Route::forward('get'),“/admin/images/upload/{$news_id}”);
。同样,从未使用过Lavarel,但请尝试一下:)您这样定义了您的路由吗?:route::get('admin/images/upload/(:any'),array('uses'=>'admin)。images@upload“));
,同时尝试删除“/admin/images/upload/{$news\u id}”至“admin/images/upload”的第一个正斜杠/{$news\u id}“
,不知道拉瓦雷尔有多严格..有趣的评论。不管怎样,我总算修复了。
class Admin_Images_Controller extends Admin_Controller
{
public $restful = true;
public function get_upload($news_id)
{