style example custom column actioncolumn php yii

php - example - yii2 gridview custom column



Agregar columna como enlace en CGridView (1)

Necesito agregar un enlace a mi gridview Este enlace llamará a la acción con parámetros como user_id y course_id.
entonces escribí este código

Vista:

<?php $cmodel=new Courses; $user_id=intval($_GET[''user_id'']); $this->widget(''zii.widgets.grid.CGridView'', array( ''id''=>''courses-grid'', ''dataProvider''=>$cmodel->searchCources($user_id), ''filter''=>$cmodel, ''columns''=>array( ''course_id'', ''name_ar'', ''name_en'', ''code'', ''t_time'', array( ''name'' => ''t_time'', ''value'' => "CHtml::link(''Add'',array(''packages/add'',''user_id''=>$user_id,''course_id''=>$data->course_id))", ''type'' => ''raw'', ) , /* ''req'', ''aud'', ''targets'', ''programs'', ''criterion'', ''section_id'', ''acc'', ''en'', ''ar'', ''fr'', ''image'', */ ))); ?>

Modelo:

<?php ... public function searchCources($user_id) { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria=new CDbCriteria; $criteria->compare(''course_id'',$this->course_id); $criteria->compare(''name_ar'',$this->name_ar,true); $criteria->compare(''name_en'',$this->name_en,true); $criteria->compare(''code'',$this->code,true); $criteria->compare(''t_time'',$this->t_time); $criteria->compare(''intro'',$this->intro,true); $criteria->compare(''req'',$this->req,true); $criteria->compare(''aud'',$this->aud,true); $criteria->compare(''targets'',$this->targets,true); $criteria->compare(''programs'',$this->programs,true); $criteria->compare(''criterion'',$this->criterion,true); $criteria->compare(''acc'',$this->acc); $criteria->compare(''en'',$this->en); $criteria->compare(''ar'',$this->ar); $criteria->compare(''fr'',$this->fr); $criteria->compare(''image'',$this->image,true); $criteria->addCondition('' course_id not in ( select course_id from ict_cpackage where user_id=''.$user_id.'') ''); return new CActiveDataProvider($this, array( ''criteria''=>$criteria )); } ... ?>

Pero devuelve este error:

Undefined variable: data

1- ¿Por qué devolver este error? 2- cómo puedo acceder al valor de la columna

Gracias por adelantado


''value'' => "CHtml::link(''Add'',array(''packages/add'',''user_id''=>$user_id,''course_id''=>/$data->course_id))",

Está utilizando "" para citar su cadena, por lo que necesita escanear los $data $ on $data , por lo que se lee como /$data .