从Php函数中检索数据

时间:2016-11-18 20:11:19

标签: php

如何从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>

有没有人对此有任何想法?

我非常感谢所有的帮助。

1 个答案:

答案 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' 
    ],

希望这有帮助。