2015-02-12 47 views
0

創建鏈接我在Yii框架初學者,我想用一個字段idAccounts.name鏈接CGridView與CGridView

$post= Sheduale::model()->search(); 
    $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'users-grid', 
    'dataProvider'=>$post, 
    'columns'=>array(
     'idAccounts.TypeId', 
     'idAccounts.name', 
       'start', 
       'end', 
     array(
      'class'=>'CButtonColumn', 
     ), 
    ), 
    )); 

回答

0

你可以這樣做:

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'users-grid', 
'dataProvider'=>$post, 
'columns'=>array(
    'idAccounts.TypeId', 
    array(
      "header"=>"The column header", 
      "value"=>function($data, $row){ 
        echo "<a></a>" //you can set everything you want here 
       //$data refers to each data row in the grid. you can use $data->attribute_name for access attributes of your model 
       } 
      ) 
      'start', 
      'end', 
    array(
     'class'=>'CButtonColumn', 
    ), 
), 
)); 

我認爲這將幫你。

+0

非常感謝,我希望 – Muzaffarich 2015-02-12 05:42:02

0

一個選項是使用CLinkColumn。您可以將其label屬性設置爲您要在鏈接中顯示的任何文本,並使用其urlExpression屬性爲每個鏈接生成URL。 urlExpression必須是一個包含PHP的字符串(將對其進行評估以確定應該用於鏈接URL的內容)。例如:

$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'users-grid', 
    'dataProvider' => $post, 
    'columns' => array(
     'idAccounts.TypeId', 
     array(
      'class' => 'CLinkColumn', 
      'label' => 'View details' 
      'labelExpression' => '$data->idAccounts->name', 
      'urlExpression' => '\Yii::app()->createUrl(' 
       . '"controller/action", ' 
       . 'array("id" => $data->idAccounts->id)' 
      . ')', 
      'header' => 'Some Column Header', 
     ), 
     'start', 
     'end', 
     array(
      'class'=>'CButtonColumn', 
     ), 
    ), 
)); 

您需要用你想要的鏈接,進入到實際的Yii的路由替代controller/action(在我的樣本urlExpression字符串),同樣在這個例子中使用的樣本路徑參數。