【问题标题】:How to put a string at the beginning of a breadcrumb?如何将字符串放在面包屑的开头?
【发布时间】:2016-04-22 17:32:02
【问题描述】:

我有以下问题:如何将字符串放在面包屑的开头?

情况是,我要搜索一个关键字Test 4。

将生成的面包屑是: 测试 1 > 测试 2 > 测试 3 测试 4

我要搜索的第二个关键字是 Test 7

我想要生成的面包屑是: ... 测试 4 > 测试 5 > 测试 6 测试 7

如何将点 (...) 放在面包屑的开头?

这是我当前的代码:

 public function getPathNames($node_id, $id_tag) {

    $node_ids=$this->getPath($node_id);

    $r = array();

    foreach($node_ids as $id){
        $NodeObject = NodeObject::where('id','=',$id)->firstOrFail();

        if ($this->getCurrentUserGroup() == 4) {
            $NodeRevision = NodeRevision::where('id','=',$NodeObject->node_revision)->firstOrFail();
        } else {
            if (empty($NodeObject->node_revision_draft)) {
                $NodeRevision = NodeRevision::where('id','=',$NodeObject->node_revision)->firstOrFail();
            } else {
                $NodeRevision = NodeRevision::where('id','=',$NodeObject->node_revision_draft)->firstOrFail();
            }
        }
        $r[]= '<a id="'.$id_tag.$NodeObject->id.'" href="#" class="search_path_click">'.$NodeRevision->name . '</a>  <i class="fa fa-chevron-right" style="color: #000; font-size: 0.5em;"></i>';
    }
         // only show the last 3 names in the breadcrumb
        return array_slice($r, -3, 3, false);
}

【问题讨论】:

    标签: php slice breadcrumbs


    【解决方案1】:

    已编辑:

    如果数组大小等于或大于3,则将三个点添加到数组中第一项的乞求中,您所要做的就是

    // only show the last 3 names in the breadcrumb
    $r = array_slice($r, -3, 3, false);
    if( count($r) >= 3 ) {
        $r[0] = '&hellip; '.$r[0]; // we know the keys won't be preserved as you used `false` in `array_slice` function, so we can safely assume first array element will be 0  
    }
    return $r
    

    【讨论】:

      【解决方案2】:

      示例:

      return array(0 => "...") + array_slice($r, -4, 4, false);
      

      这就是你想要的?

      【讨论】:

        【解决方案3】:

        马哈茂德,感谢您的回复。我想在第一个数组项中添加一个字符串。我不想填充额外的数组项;-)。可能我并不清楚。所以我现在想做的是:

        $r = array_slice($r, -3, 3, false); if (count($r) >= 3) { $rr = array(); foreach ($r as $key => $oneR) { if ($key == 0) { $rr = '<span style="color: #000;">...</style>' . $oneR; } else { $rr = $oneR; } } return $rr; } else { return $r; }

        【讨论】:

          【解决方案4】:

          感谢大家的回复!我结合了你的代码,这就是我想要达到的结果!

                      $arraySliced = array_slice($r, -4, 4, false);
                  if (count($arraySliced) > 3) {
                      return array(0 => "<span style='color: #000;'>...</span>") + $arraySliced;
                  }else{
                      return $arraySliced;
                  }
          

          【讨论】:

            猜你喜欢
            • 2020-04-29
            • 1970-01-01
            • 1970-01-01
            • 2014-02-12
            • 2012-01-04
            • 1970-01-01
            • 2020-10-18
            • 2014-05-21
            • 1970-01-01
            相关资源
            最近更新 更多