如何从php函数中获取数据?我想用以下方式调用图标:
<i class="<?php $this->Html->_($value['icon']);?>"></i>
不行。
如果它有效就像这样
<i class="fa fa-cloud"></i>
但是如果调用另一个函数,如:
<a href="#"><?php $this->Html->_($value['name']); ?></a>
运作良好。
主要的PHP功能:
/**
* Retrieves the primary navigation for the client interface
*
* @param string $base_uri The base_uri for the currently logged in user
* @return array An array of main navigation elements in key/value pairs
* where each key is the URI and each value is an array representing that element including:
* - name The name of the link
* - active True if the element is active
* - sub An array of subnav elements (optional) following the same indexes as above
*/
public function getPrimaryClient($base_uri)
{
$nav = [
$base_uri => [
'name' => $this->_('Navigation.getprimaryclient.nav_dashboard'),
'active' => false
],
$base_uri . 'accounts/' => [
'name' => $this->_('Navigation.getprimaryclient.nav_paymentaccounts'),
'active' => false,
'secondary' => [
$base_uri . 'accounts/' => [
'name' => $this->_('Navigation.getprimaryclient.nav_paymentaccounts'),
'active' => false,
'icon' => 'fa fa-list'
],
$base_uri . 'accounts/add/' => [
'name' => $this->_('Navigation.getprimaryclient.nav_paymentaccounts_add'),
'active' => false,
'icon' => 'fa fa-plus-square'
],
$base_uri => [
'name' => $this->_('Navigation.getprimaryclient.nav_return'),
'active' => false,
'icon' => 'fa fa-arrow-left'
]
]
],
$base_uri . 'contacts/' => [
'name' => $this->_('Navigation.getprimaryclient.nav_contacts'),
'active' => false,
'secondary' => [
$base_uri . 'contacts/' => [
'name' => $this->_('Navigation.getprimaryclient.nav_contacts'),
'active' => false,
'icon' => 'fa fa-list'
],
$base_uri . 'contacts/add/' => [
'name' => $this->_('Navigation.getprimaryclient.nav_contacts_add'),
'active' => false,
'icon' => 'fa fa-plus-square'
],
$base_uri => [
'name' => $this->_('Navigation.getprimaryclient.nav_return'),
'active' => false,
'icon' => 'fa fa-arrow-left'
]
]
]
];
// Include the primary client's plugin navigation
return $this->getPluginNavPrimaryClient($nav, $base_uri);
}
我想在这里调用图标,因为我标记 //获取图标
<?php
$active_nav = null;
?>
<ul class="nav navbar-nav">
<?php
foreach ($this->Html->ifSet($nav, array()) as $link => $value) {
$attributes = array();
$link_attributes = array();
$dropdown = !empty($value['sub']);
$active = false;
if ($value['active']) {
$active = true;
$attributes['class'][] = "active";
$active_nav = $value;
}
if ($dropdown) {
$attributes['class'][] = "dropdown";
$link_attributes['class'][] = "dropdown-toggle";
$link_attributes['data-toggle'][] = "dropdown";
// Set parent to active if child is
if (!$active) {
foreach ($this->Html->ifSet($value['sub'], array()) as $sub_link => $sub_value) {
if ($sub_value['active']) {
$attributes['class'][] = "active";
break;
}
}
}
}
?>
<li<?php echo $this->Html->buildAttributes($attributes);?>>
<a href="<?php $this->Html->_($link);?>"<?php echo $this->Html->buildAttributes($link_attributes);?>>
// Get Icon
<i class="<?php $this->Html->_($value['icon']);?>"></i>
// Get Icon
<?php
$this->Html->_($value['name']);
if ($dropdown) {
?>
<b class="caret"></b>
<?php
}
?>
</a>
<?php
if (!empty($value['sub'])) {
?>
<ul class="dropdown-menu">
<?php
foreach ($this->Html->ifSet($value['sub'], array()) as $sub_link => $sub_value) {
?>
<li>
<a href="<?php $this->Html->_($sub_link);?>"><i class="<?php $this->Html->_($sub_value['icon']);?>"></i> <?php $this->Html->_($sub_value['name']);?></a>
</li>
<?php
}
?>
</ul>
<?php
}
?>
</li>
<?php
}
?>
</ul>
有没有人对此有任何想法?
我非常感谢所有的帮助。
答案 0 :(得分:0)
嗯,这是工作b
<i class="<?php $this->Html->_($value['name']);?>"></i>
因为name属性是第一个基本URI
$base_uri => [
'name' => $this->_('Navigation.getprimaryclient.nav_dashboard'),
'active' => false
],
如果你也添加图标,它将起作用
$base_uri => [
'name' => $this->_('Navigation.getprimaryclient.nav_dashboard'),
'active' => false,
'icon' => 'fa fa-cloud'
],
希望这有帮助。