【问题标题】:methods to call a model name on Controller's在 Controller 上调用模型名称的方法
【发布时间】:2013-04-12 08:58:14
【问题描述】:

我是 CakePHP 的大一新生... 有什么方法可以在 Controller 上调用模型名称吗? 假设我有 3 个模型 - 用户、组、小部件 .. 和 3 个控制器 - UsersController、GroupsController、WidgetsController.. 其实我打算写一个插件..为两个视图文件设置<title>

有点像.. 我使用插件设置<title><?php echo $model_name; ?></title> 当我移动到“/users/main”时,标题将是<title>User</title>, 当我移动到“/widgets/main”时,标题将是<title>Widget</title>。

这个解决方案有什么想法吗? 每个Controller如何匹配自己的Model_name?

【问题讨论】:

    标签: cakephp plugins model controller


    【解决方案1】:

    试试这个

    在您的模板中:

    <title><?php echo $title_for_layout?></title> 
    

    将此添加到您的控制器:

    $this->pageTitle = $model_name; 
    

    【讨论】:

    • 请注意,'自动'$title_for_layout 变量在 CakePHP 2.3 中被标记为弃用。 CakePHP 没有在任何地方使用 Afaik pageTitle?最好手动设置$title_for_layout或者其他viewVar。
    【解决方案2】:

    要让模型名称自动出现在每个视图中,请将此代码添加到您的 AppController;

    public function beforeRender()
    {
        parent::beforeRender();
    
        // modelClass should be set automatically
        // to the 'default' model for the controller
        $this->set('model_name', $this->modelClass);
    }
    

    在你的观点中:

    <title><?php echo __($model_name); ?></title>
    

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-06
      • 2012-12-20
      • 2016-08-09
      相关资源
      最近更新 更多