Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Relacionar dos tablas en yii

Estas en el tema de Relacionar dos tablas en yii en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos. Este es mi primer post, ademas de nueva en yii. Quiero resolver un problema del que no encuentro solucion aun por internet. ...
  #1 (permalink)  
Antiguo 07/05/2015, 10:47
 
Fecha de Ingreso: mayo-2015
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Relacionar dos tablas en yii

Hola a todos. Este es mi primer post, ademas de nueva en yii. Quiero resolver un problema del que no encuentro solucion aun por internet.

En mi framework yii (V 1) quiero hacer algo tan simple como relacionar dos tablas para traer un campo de una de ellas .Mis tablas son:

Código:
tbl_trailer [tra_id, tra_placa] 
tbl_vehiculo[veh_id,tra_id,fecha]
Quiero consultar la placa del trailer (tra_placa) de acuerdo a la tabla vehiculos. Mi codigo yii esta asi:
Código PHP:
// modelo trailers
public function relations(){
return array(
'trail' => array(self::HAS_MANY'tbl_vehiculo''tra_id'));
}
// modelo vehiculo
public function relations(){
return array(
'trailer' => array(self::BELONGS_TO'tbl_trailer''tra_id'),);

En mi controlador hago la consulta:
Código PHP:
// controlador vehiculo
$listar_trailer ModeloVehiculo::model()->with(
                
'trailer.tra_placa'
            
)->findAll
                
(array('select' => '*',
                        
'condition' => 'veh_id=:id',
                        
'order' => 't.log_fecha desc',
                        
'params' => array(':id' => $result->attributes['veh_id']))); 
Quiero traer el campo tra_placa. Lo he hecho como dice en los foros de yii, pero lo unico que obtengo es un pinche error:
Código HTML:
CDbException
La relación "tra_placa" no se encuentra definida en la clase active record "Trailers".
No entiendo que esta mal. Si le quito el metodo with() me trae la consulta sin el campo tra_placa. Realmente esta situacion me tiene muy disgustada pense que yii me iba a hacer mas facil el camino pero fue un grave error haberlo escogido... chicos por favor alguno que me pueda ayudar le agradeceria
  #2 (permalink)  
Antiguo 07/05/2015, 12:36
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Relacionar dos tablas en yii

buenas, hay algo que tienes que entender estas usando un ORM y las relaciones las convierte en objetos, cuando haces el with es indicando el objeto relación que quieres que te traiga, es decir
Código PHP:
Ver original
  1. $listar_trailer = ModeloVehiculo::model()->with('trailer')->findAll(...)
y cuando quieras ver la placa la sacas
Código PHP:
Ver original
  1. echo $listar_trailer->trailer->tra_placa;
saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: yii
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:19.