I have a gridView and i managed to get it to contain the data i need, but what i need to do next is to create a column which contains two buttons for has_facebook and has_twitte
You don't need to create own column Class. You can create simple raw-column and show there anything you want:
[
'attribute' => 'some_title',
'format' => 'raw',
'value' => function ($model) {
return ''.$model->id.' and other html-code';
},
],
This function
function ($model) {
return ''.$model->id.' and other html-code';
}
names callback function. There is core method evaluateExpression in CComponent:
public function evaluateExpression($_expression_,$_data_=array())
{
if(is_string($_expression_))
{
extract($_data_);
return eval('return '.$_expression_.';');
}
else
{
$_data_[]=$this;
return call_user_func_array($_expression_, $_data_);
}
}
in our case expression is not string, it's a function, so it runs php method call_user_func_array and pass into it your model.