How to create a breadcrumb widget

You are viewing revision #5 of this wiki article.
This version may not be up to date with the latest version.
You may want to view the differences to the latest version or see the changes made in this revision.

« previous (#4)next (#6) »

Here's a simple way to create a breadcrumb widget to be used in your templates. The idea is just to isolate how the breadcrumb is generated based on an array of crumbs.

>Info: Please note, that new versions of Yii Framework already contain a bulit-in breadcrumbs widget. See this class reference chapter for more information. Information in this article may be, however, usable to build custom one, not descending from bulit-in one.


class BreadCrumb extends CWidget {
	public $crumbs = array();
	public $delimiter = ' / ';
	public function run() {



<div id="breadCrumb">	
	foreach($this->crumbs as $crumb) {
		if(isset($crumb['url'])) {
			echo CHtml::link($crumb['name'], $crumb['url']);
		} else {
			echo $crumb['name'];
		if(next($this->crumbs)) {
			echo $this->delimiter;

Usage in views

<?php $this->widget('application.components.BreadCrumb', array(
  'crumbs' => array(
    array('name' => 'Home', 'url' => array('site/index')),
    array('name' => 'Login'),
  'delimiter' => ' &rarr; ', // if you want to change it
)); ?>

Chinese version

10 0
Viewed: 79 770 times
Version: Unknown (update)
Category: Tutorials
Written by: knut
Last updated by: Yang He
Created on: Mar 19, 2009
Last updated: 8 years ago
Update Article


View all history