Hola amigos! tengo un problema parecido!.. tengo una relación entre dos tablas!. claro con un campo "cod_prov" y en ves de trabajar con ese campo id quiero trabajar con el campo "razon_social"!.. se supone que esa solucion que le das al amigo debería funcionarme a mi pero que va el campo "razon_social" siempre queda vacio cuando muestro y en la busqueda da error X_X ve el cod:
class RegEntrada extends CActiveRecord
{
[color="#FF0000"] public $razon_social; //tu paso 1[/color]
public function rules()
{
return array(
array('cantidad_ent, cod_prov, cod_material', 'numerical', 'integerOnly'=>true),
array('f_entrada', 'safe'),
[color="#FF0000"] array(‘razon_social’, ‘safe’), //PASO 2
array('razon_social', 'safe', 'on'=>'search'), //PASO 2[/color]
array('cod_ent, f_entrada, cantidad_ent, cod_prov, cod_material', 'numerical', 'on'=>'search'),
);
}
public function relations() // la relacion con la otra tabla
{
return array(
[color="#FF0000"]'codProv' => array(self::BELONGS_TO, 'Proveedores', 'cod_prov'),[/color]
public function search() //paso 3
{
[color="#FF0000"] $criteria=new CDbCriteria;
$criteria->with = array('codProv');
$criteria->compare('codProv.razon_social',$this->razon_social,true);[/color]
$criteria->compare('cod_ent',$this->cod_ent);
$criteria->compare('f_entrada',$this->f_entrada,true);
$criteria->compare('cantidad_ent',$this->cantidad_ent);
$criteria->compare('cod_prov',$this->cod_prov);
$criteria->compare('cod_material',$this->cod_material);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
y mi vista _view que es donde creo que tengo el error!
<b><?php echo CHtml::encode($data->getAttributeLabel('razon_social')); ?>:</b>
[color="#FF0000"]<?php echo CHtml::encode($data->razon_social); ?> [/color]// en esta linea es q creo tener el error y e intentado con ($data->codProv->razon_social) y nada!...
<br />