我有两个文件路径:
1: /api/math/application/controllers/test.php
2: /learn/mathtek/application/controllers/Auth.php
我需要从path1(test)的控制器内的path2(Auth)调用控制器。这可能吗?如果是的话怎么样?
我曾尝试使用redirect()函数,但没有用。 我也试过这个:
require_once('/learn/mathtek/application/controllers/Auth.php');
$aObj = new a(); //create object
$aObj->custom_a(); //call function
但它仍然没有用......请帮助...在这里的codeigniter新手
答案 0 :(得分:1)
您不能在控制器操作/方法中调用任何其他控制器操作/方法以获得输出或返回值,因为它超出了MVC的规则。
但是你可以从一个控制器动作重定向到另一个控制器动作,并在另一个控制器动作中传递参数,如下所示:
redirect("CONTROLLER/ACTION/ARGUMENT1/ARGUMENT2");
修改强>
假设你在测试控制器和测试控制器的test_method()动作中,那么你可以将你的业务逻辑代码放在方法中并得到一些输出,现在你想调用任何其他控制器函数(例如:Auth)来执行使用该输出的任何其他操作然后您可以在重定向函数中传递该输出,如下所示:
redirect("Auth/auth_method/ARGUMENT1/ARGUMENT2");
答案 1 :(得分:1)
谢谢大家的帮助。我最后使用重定向功能直接发布路径,使其工作。
1: /api/math/application/controllers/test.php - codeigniter1
2: /learn/mathtek/application/controllers/Auth.php - codeigniter2
实施例: 如果我想从路径(1)调用path(2)。
重定向( 'http://localhost/learn/mathtek/auth/signin'); - 'signin'是'auth'控制器内的一个函数
那就是'test'控制器里面的代码。这在codeigniter中有效,即使它来自不同的控制器路径。
然而,这对UNITY(WEBGL)不起作用。这就是为什么我结束回声并将其归还。