例如,我们有一个菜单,它将通过从数据库中获取slugs和title来创建url。所有的页面都需要菜单。在从数据库中获取的控制器传递菜单数据时,我将让每个控制器重复相同的代码,这不是DRY。所以我怎么能包括他们在"布局"视图不要求每个控制器传递菜单数据?如果这是一个最简单的,请原谅,我今天开始laravel
你可以使用Traits。用你需要的方法定义一个trait类,并且"只在你需要的类中使用它们"。你在BaseController中定义的任何东西都可以被所有扩展它的东西使用这不是你需要的
MenuTrait
trait MenuControls
{
public function createMenu()
{
}
}
需要菜单控件的类:
class INeedMenusController extends BaseController
{
use MenuControls;
public function doSomething()
{
$someVar = $this->createMenu();
}
}