how to show the data at BootDetailView from another model

Hi there,

Q: How can I show the BootDetailView like this.


Users

       

    name : aa

    company : test

    department : dep1

    section : sec1.1

    team : team1.1.1

I’ve 2 tbls (department and user)

This is the department tbl structure


department

    id | name      | p_id | company_id

    1  | dep1      | 0    | 1

    2  | dep2      | 0    | 1

    3  | sec1.1    | 1    | 1

    4  | sec2.1    | 2    | 1

    5  | team1.1.1 | 3    | 1

    6  | team1.1.2 | 3    | 1

    7  | team2.1.1 | 4    | 1

this is the user tbl structure


user

    id | name | company_id | team_id

    1  | aa   | 1          | 5

    2  | bb   | 1          | 5

    3  | cc   | 1          | 7

    4  | dd   | 1          | 6

    5  | ee   | 1          | 6

I added relationship at user model


public function relations()

    	{

    		// NOTE: you may need to adjust the relation name and the related

    		// class name for the relations automatically generated below.

    		return array(

    			'ranks' => array(self::BELONGS_TO, 'Rank', 'rank_id'),

    			'companies' => array(self::BELONGS_TO, 'Company', 'company_id'),

    			'departments' => array(self::BELONGS_TO, 'Department', 'team_id'),

    		);

    	}

this view (CGridView is using at index.php (view))


<?php $this->widget('bootstrap.widgets.BootDetailView', array(

                'data'=>$model,

                'attributes'=>array(

                    //array('name'=>'id', 'label'=>'ID'),

                    array('name'=>'login_name', 'label'=>'Name'),

                    array('name'=>'first_name', 'label'=>'First Name'),

                    array('name'=>'last_name', 'label'=>'last Name'),

                    array('name'=>'email', 'label'=>'Email'),

    		    array('name'=>'created', 'label'=>'Created'),

    		    array('name'=>'ranks.name', 'label'=>'Rank'),

    		    array('name'=>'companies.name', 'label'=>'Company'),

                    array('name'=>'departments.name', 'label'=>'Team'),

    		    //array('name'=>'$department', 'label'=>'department'),

                    //array('name'=>'company_type_id', 'label'=>'Company Type'),

    		    //array('name'=>'companyTypes.name', 'label'=>'Company Type'),

    

                ),

            )); ?>

This is Controller


public function actionView($id)

    	{

    		$model = $this->loadModel($id);

    		$sql = 'SELECT id, name FROM rank r WHERE r.id = '. $model->rank_id;

    		$rank = Yii::app()->db->createCommand($sql)->queryAll();

    		

    		

    		$sql = 'SELECT id, name FROM company c WHERE c.id = '. $model->company_id;

    		$company = Yii::app()->db->createCommand($sql)->queryAll();			

    		

    		$dst = $this->getDST($model->team_id);

    		

    		$this->render('view',array(

    			'model'=>$model,

    			'rank'=>$rank[0]['name'],

    			'company'=>$company[0]['name'],

    			'department'=>$dst['department'],

    			'section'=>$dst['section'],

    			'team'=>$dst['team'],

    			

    		));

    	}

    public function getDST($team_id) // Getting the Department, Section and Team

    	{

    		$records = Department::model()->find('id=:id', array(':id'=>$team_id));

    		if($records->p_id == 0 )

    		{

    			$dst['department'] = $model->team_id;

    			$dst['section'] = NULL;

    			$dst['team'] = NULL;

    		}else{

    			$records = Department::model()->find('id=:id', array(':id'=>$records->p_id));

    			if($records->p_id == 0 )

    			{

    				$dst['department'] = $records->id;

    				$dst['section'] = $model->team_id;

    				$dst['team'] = NULL;

    			}else{

    				$dst['section'] = $records->id;

    				$dst['team'] = NULL;

    				$records = Department::model()->find('id=:id', array(':id'=>$records->p_id));

    				if($records->p_id == 0 )

    				{

    					$dst['department'] = $records->id;

    					$dst['team'] = $model->team_id;

    				}

    			}

    		}	

    		

    		return $dst;

    	}