2

如何从“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');
    }   
}
4

1 回答 1

2

那么有很多方法可以做到这一点......

一种这样的方式,可能就像......

  1. 假设 example.php 是必需的前端,所以我们需要一个到它的路由。

在 app\Config\Routes.php 我们需要入口

$routes->get('/example', 'Example::index');

这让我们可以使用 URL your-site dot 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() 取决于您,但您需要在需要之前使用它(显然)。

您可以在构造函数中执行此操作,也可以在父类中执行此操作并对其进行扩展,以便对一组控制器通用。

由你决定。

于 2020-04-08T14:52:07.917 回答