我有多个模型,我想将变量$section
添加到,然后在sidenav.ctp
中使用该值来动态更改边栏。例如,我的型号有:如何在CakePHP模型中设置变量并在视图中访问它?
class Resource extends AppModel {
public $section = 'section1';
public $displayField = 'name';
public $order = 'modified DESC';
//validation, relationships, etc.
}
然后,我有另一种模式,如:
class Topic extends AppModel {
public $section = 'section2';
public $tablePrefix = '';
//validation, relationships, etc.
}
所以在sidenav.ctp
我想要做的事,如:
<?php if ($this->section == 'section1') { ?>
<li><?php echo $this->Html->link(__('Resources'), array('controller' => 'resources', 'action' => 'index')); ?></li>
<li><?php echo $this->Html->link(__('Topics'), array('controller' => 'topics', 'action' => 'index')); ?> </li>
<li><?php echo $this->Html->link(__('Log Out'), array('controller' => 'users', 'action' => 'logout')); ?> </li>
<?php } ?>
<?php if ($this->section == 'section2') { ?>
<li><?php echo $this->Html->link(__('Resources1'), array('controller' => 'resources', 'action' => 'index')); ?></li>
<li><?php echo $this->Html->link(__('Topics1'), array('controller' => 'topics', 'action' => 'index')); ?> </li>
<li><?php echo $this->Html->link(__('Log Out1'), array('controller' => 'users', 'action' => 'logout')); ?> </li>
<?php } ?>
但访问$section
这样不起作用。我无法弄清楚如何在模型中设置值,然后在视图中访问它。我知道我可以在控制器中设置值,然后通过$section
访问它,但这需要我将它放在每个函数中。
为什么模型?我认为没有必要。 – Salines 2015-02-05 21:30:14
如果我将它放在控制器中,我将如何设置它,因此我不需要将它分别放在每个函数中? – WOUNDEDStevenJones 2015-02-05 21:31:14
你会为不同的模型显示不同的菜单? – Salines 2015-02-05 21:34:26