Php 突出显示来自阵列的活动链接

Php 突出显示来自阵列的活动链接,php,templates,Php,Templates,我想应用class=“active”,具体取决于您所处的页面。最好的方法是什么 例如: 在构造函数中,它创建一个包含链接名称和地址的数组 class OrderController extends Controller { public $data = array(); private __construct() { $this->data['sidebar'] = array( 'New Orders' => '/admin/

我想应用
class=“active”
,具体取决于您所处的页面。最好的方法是什么

例如:

在构造函数中,它创建一个包含链接名称和地址的数组

class OrderController extends Controller {

   public $data = array();

   private __construct() {
        $this->data['sidebar'] = array(
            'New Orders' => '/admin/order',
            'Processing Orders' => '/admin/order/processing',
            'Completed Orders' => '/admin/order/completed',
    );


   public function actionIndex($status) {
        $data = $this->data;
        if ($status == "processing") {
         //how to apply class="active" when you on the order/processing page?
         //Apply active in the data['sidebar'] array 
        }

        $view = new view('orders.php', $data);
        $view->render();
    }
  } 
数组传递到
actionIndex()
和render orders.php中

在orders.page中,我有如下内容:

<?php foreach ($sidebar as $name => $link): ?>
    <li>
      <strong><a href="<?php echo $link; ?>"><?php echo $name; ?></a></strong>
   </li>
<?php endforeach; ?>

  • 我想在
    li
    标签中添加
    class=“active”

    我的基本想法是:

    if ($tatus == "processing") {
        data['active'] = 'processing';
    }
    

    <?php foreach ($sidebar as $name => $link): ?>
        <li <?php if ($active == $name) echo class="active"; ?>>
          <strong><a href="<?php echo $link; ?>"><?php echo $name; ?></a></strong>
       </li>
    <?php endforeach; ?>
    
    
    
    条件基于必须处理的名称。。。您可以根据需要随意修改。

    我的基本想法是:

    if ($tatus == "processing") {
        data['active'] = 'processing';
    }
    

    <?php foreach ($sidebar as $name => $link): ?>
        <li <?php if ($active == $name) echo class="active"; ?>>
          <strong><a href="<?php echo $link; ?>"><?php echo $name; ?></a></strong>
       </li>
    <?php endforeach; ?>
    
    
    

    条件基于必须处理的名称。。。您可以根据需要进行修改。

    您可以在阵列上构建:

    class OrderController extends Controller {
    
       public $data = array();
    
       private __construct() {
            $this->data['sidebar'] = array(
                'New Orders' => array( 'url'=>'/admin/order', 'class'=>'' ),
                'Processing Orders' => array( 'url'=>'/admin/order/processing', 'class'=>'' )
                'Completed Orders' => array( 'url'=>'/admin/order/completed', 'class'=>'' ),
        );
    
    
       public function actionIndex($status) {
            $data = $this->data;
            if ($status == "processing") {
              $data['sidebar']['Processing Orders']['class'] = 'active';
            }
    
            $view = new view('orders.php', $data);
            $view->render();
        }
      }
    
    现在您必须更改foreach:

    <?php foreach ($sidebar as $name => $link): ?>
       <li class="<?php echo $link['class']; ?>">
          <strong><a href="<?php echo $link['url']; ?>"><?php echo $name; ?></a></strong>
       </li>
    <?php endforeach; ?>
    
    
    
    您可以在阵列上构建:

    class OrderController extends Controller {
    
       public $data = array();
    
       private __construct() {
            $this->data['sidebar'] = array(
                'New Orders' => array( 'url'=>'/admin/order', 'class'=>'' ),
                'Processing Orders' => array( 'url'=>'/admin/order/processing', 'class'=>'' )
                'Completed Orders' => array( 'url'=>'/admin/order/completed', 'class'=>'' ),
        );
    
    
       public function actionIndex($status) {
            $data = $this->data;
            if ($status == "processing") {
              $data['sidebar']['Processing Orders']['class'] = 'active';
            }
    
            $view = new view('orders.php', $data);
            $view->render();
        }
      }
    
    现在您必须更改foreach:

    <?php foreach ($sidebar as $name => $link): ?>
       <li class="<?php echo $link['class']; ?>">
          <strong><a href="<?php echo $link['url']; ?>"><?php echo $name; ?></a></strong>
       </li>
    <?php endforeach; ?>
    
    
    
    您是否有机会使用URL重写?首先将
    if($tatus==
    …更改为
    if($status
    )。您忘记了$tatus的s,您是否有机会使用URL重写?首先将
    if($tatus=
    …更改为
    if($status
    )。您忘记了$tatus的s