2016-11-11 2 views
1

Я сделал хлебные циклы автоматически на CodeIgniter, но в представлении редактирования профиля пользователя мой uuid отображается как uri-> segment. Я думаю, что он будет выглядеть чище без uuid. Как я могу пропустить, удалить или скрыть его?Удаление UID из панировочных сухарей в CodeIgniter

МОЯ URL

http://localhost/myproject/user/edit/0004055ac42e42bcb57183646e84ff05

Breadcumbs с помощником

ГЛАВНАЯ> Пользователь> Изменить> 0004055ac42e42bcb57183646e84ff05

Я ожидал

Главная> Пользователь> редактировать

Helper breadcumbs:

<?php 
if(!function_exists('generateBreadcrumb')){ 
function generateBreadcrumb(){ 
    $ci = &get_instance(); 

    $i=1; 
    $uri = $ci->uri->segment($i); 
    $link = ' 
    <ol class="breadcrumb"> 
    <li><a href="'.site_url().'"><i class="fa fa-home"></i> Home</a></li>'; 

    while($uri != ''){ 
    $prep_link = ''; 
    for($j=1; $j<=$i;$j++){ 
    $prep_link .= $ci->uri->segment($j).'/'; 
    } 

    if($ci->uri->segment($i+1) == ''){ 
    $link.='<li class="active"><a href="'.site_url($prep_link).'">'; 
    $link.=$ci->uri->segment($i).'</a></li> '; 
    }else{ 
    $link.='<li><a href="'.site_url($prep_link).'">'; 
    $link.=$ci->uri->segment($i).'</a><span class="divider"></span></li> '; 
    } 

    $i++; 
    $uri = $ci->uri->segment($i); 
    } 
    $link .= '</ol>'; 
    return $link; 
    } 
} 

?> 
+0

почему не может и использовать $ this-> router-> fetch_class(); для получения имени вашего контроллера и $ this-> router-> fetch_method(); для вашего имени метода для генерации вашей хлебной крошки –

ответ

0

Будет ли это произойти только после того, как "пользователя> редактировать"? Если да, то как насчет добавления условного выражения, которое ищет эту последовательность, и игнорирует сегмент, если он найден?

Я бы хотел проверить это, но у меня нет готовой игровой площадки. Смотрите, если это работает для вас:

if ($i>1 && $ci->uri->segment($i) == 'edit' && $ci->uri->segment($i-1) == 'User') { 
    //just ignore this 
} else { 
    if($ci->uri->segment($i+1) == ''){ 
    $link.='<li class="active"><a href="'.site_url($prep_link).'">'; 
    $link.=$ci->uri->segment($i).'</a></li> '; 
    }else{ 
    $link.='<li><a href="'.site_url($prep_link).'">'; 
    $link.=$ci->uri->segment($i).'</a><span class="divider"></span></li> '; 
    } 
} 

Другим решением было бы проверить, если strlen($ci->uri->segment($i)) равен 32. Конечно, это будет работать только если вы ожидаете UUID всегда быть 32 символов и никакой другой сегмент URI быть так долго.

+0

спасибо @zJorge Я использую ваш ответ, потому что очень просто использовать мой предыдущий помощник. решила –

0

Попробуйте this.its работает только, если вы хотите добавить свой контроллер и имя метода в навигационной цепочке

$c=$this->router->fetch_class();; 
$m=$this->router->fetch_method(); 
$link=""; 
$link.='<li><a href="'.site_url().'"><i class="fa fa-home"></i> Home</a></li>'; 

if($m!='index') 
{ 
    $link.='<li><a href="'.site_url($c).'">$c</li> 
<li><a class="active" href="'.site_url($m).'">$m</li>'; 
} 
else 
{ 
$link.='<li><a class="active" href="'.site_url($c).'">$c</li>'; 
} 
+0

спасибо @Saravana Dev за ответ, уже пытаюсь выполнить скрипт, который вы даете, но не так, как я ожидал, поэтому я пытаюсь отредактировать из ответов zJorge –

Смежные вопросы