例如,我们有一个菜单,它将通过从数据库中获取slug和title来创建url。所有页面都需要菜单。从数据库中取出的控制器传递菜单数据时,我将让每个控制器重复相同的代码,这不是DRY。那么如何将它们包含在“布局”中呢?查看,而不需要每个控制器传递菜单数据?如果它是最简单的,请原谅,我今天开始了。
答案 0 :(得分:1)
您可以使用特征。使用您需要的方法定义特征类,并且仅在您需要的类中使用它们。您在BaseController中定义的任何内容都可用于扩展它的所有内容,而不是您需要的内容
trait MenuControls
{
public function createMenu()
{
}
}
class INeedMenusController extends BaseController
{
use MenuControls;
public function doSomething()
{
$someVar = $this->createMenu();
}
}