Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 呼叫外部控制器,Laravel_Php_Controller_Routes_Call_Laravel - Fatal编程技术网

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
ie
GET\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)
     {