在某个模块/控制器内部自动调用功能

时间:2014-10-13 08:46:11

标签: laravel-4

是否可以在每个请求中调用某个模块中的函数?

假设我有一个名为' configuration'的模块名称,在这个模块上,我有一个控制器列表和功能/方法列表。我想要的是自动通过我的"菜单"到视图而不在每个方法和控制器上手动传递它。

此菜单仅在“配置模块”内可用。

// I have extended the base controller to create common functions
ConfigureController extends \BaseController
{
    protected function processMenu() {
    }
}


// One of my controller that needs to render processMenu()
SetupController extends ConfigureController 
{
    public index() 
    {
        // I want to optimize this portion so that I do not have to call it evertime
        $pass_to_view = $this->processMenu();

        // I need to pass it again and again
        return View::make('setup')->with('data', $pass_to_view );

    }
}

PS。仅示例代码

提前谢谢!

2 个答案:

答案 0 :(得分:1)

使用BaseController构造函数方法__construct()并在SetupController的构造函数中调用parent :: __ construct();

答案 1 :(得分:0)

这是视图作曲家派上用场的地方。 将您的菜单放在部分菜单中,将其包含在您的布局中,然后注册一个视图编辑器(doc here:http://laravel.com/docs/4.2/responses#view-composers)。

您可以将注册码放在任何地方,例如您可以在app中创建一个文件composers.php并将其包含在app / start / global.php中。