Yii Framework Forum: how to show the data at BootDetailView from another model - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • This topic is locked

how to show the data at BootDetailView from another model Rate Topic: -----

#1 User is offline   thura747 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 10-July 12

Posted 25 July 2012 - 11:00 PM

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;
    	} 

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • This topic is locked

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users