Codeigniter 4 - 从另一个控制器调用方法
Codeigniter 4 - call method from another controller
如何在 "ClassB" 中的 "functionB" 中从 "ClassA" 调用 "functionA"?
class Base extends BaseController
{
public function header()
{
echo view('common/header');
echo view('common/header-nav');
}
}
class Example extends BaseController
{
public function myfunction()
// how to call function header from base class
return view('internet/swiatlowod');
}
}
好吧,有很多方法可以做到这一点...
一种这样的方式,可能就像...
- 假设 example.php 是必需的前端,因此我们需要一个到它的路由。
在app\Config\Routes.php中我们需要条目
$routes->get('/example', 'Example::index');
这让我们可以使用 URL 您的网站点 com/example
现在我们需要决定如何在 Example 中使用 Base 中的函数。所以我们可以做以下事情...
<?php namespace App\Controllers;
class Example extends BaseController {
protected $base;
/**
* This is the main entry point for this example.
*/
public function index() {
$this->base = new Base(); // Create an instance
$this->myfunction();
}
public function myfunction() {
echo $this->base->header(); // Output from header
echo view('internet/swiatlowod'); // Output from local view
}
}
何时何地使用 new Base() 由您决定,但您需要在需要之前使用(显然)。
您可以在构造函数中执行此操作,您可以在父级中执行此操作 class 并扩展它以便一组控制器通用。
由你决定。
如何在 "ClassB" 中的 "functionB" 中从 "ClassA" 调用 "functionA"?
class Base extends BaseController
{
public function header()
{
echo view('common/header');
echo view('common/header-nav');
}
}
class Example extends BaseController
{
public function myfunction()
// how to call function header from base class
return view('internet/swiatlowod');
}
}
好吧,有很多方法可以做到这一点...
一种这样的方式,可能就像...
- 假设 example.php 是必需的前端,因此我们需要一个到它的路由。
在app\Config\Routes.php中我们需要条目
$routes->get('/example', 'Example::index');
这让我们可以使用 URL 您的网站点 com/example
现在我们需要决定如何在 Example 中使用 Base 中的函数。所以我们可以做以下事情...
<?php namespace App\Controllers;
class Example extends BaseController {
protected $base;
/**
* This is the main entry point for this example.
*/
public function index() {
$this->base = new Base(); // Create an instance
$this->myfunction();
}
public function myfunction() {
echo $this->base->header(); // Output from header
echo view('internet/swiatlowod'); // Output from local view
}
}
何时何地使用 new Base() 由您决定,但您需要在需要之前使用(显然)。
您可以在构造函数中执行此操作,您可以在父级中执行此操作 class 并扩展它以便一组控制器通用。
由你决定。