buenas compañeros, despues de mucho tiempo vuelvo a las andadas con YII.
Tengo ya un sistema funcionando en Myisam, segun estuve leyendo a parti de la version jno recuerdo cual, no es estricto el uso de las fk para hacer una relacion entre tablas, estuve racticando un poco(un par de dias) con dos simples tablas como para empezar. Y cual es mi sorpresa que “o soy un inutil” o algo no funciona ¬¬ me inclino mas a lo segundo pero bueno
Paso a mostrar mis dos tablas:
Alumnos
id
nombre
apellido
paisId
Pais
id
nombrePais
(como puede ser que este tan atascado con esto…)
Bien tengo creado mis dos models y aca es donde me pierdo un poco:
Alumnos.php
<?php
class Alumnos extends CActiveRecord
{
public $verifyCode;
/**
* Returns the static model of the specified AR class.
* @return Post the static model class
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}
/**
* @return string the associated database table name
*/
public function tableName()
{
return 'Alumnos';
}
public function relations(){
return array(
'pais'=>array(self::BELONGS_TO, 'Pais', 'id')
);
}
/*rules */
public function rules()
{
return array(
// name, email, subject and body are required
array('nombre, apellido, paisId', 'required'),
array('nombre, apellido, paisId, edad','safe'),
array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),
);
}
public function attributeLabels()
{
return array(
'verifyCode'=>'Verification Code',
);
}
}
Pais.php
<?php
class Pais extends CActiveRecord{
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tablename(){
return 'Pais';
}
public function relations(){
return array(
'alumnos' => array(self::HAS_MANY, 'Alumnos', 'paisId')
);
}
}
Y este es mi controller (aclaro que tengo un simple crud ya funcionando, solo me da problemas en la relación) Lo puse todo en el controller para poder hacer pruebas(ya se que va en el modelo)
AlumnosController.php
public function actionIndex(){
/*lista alumnos*/
$page_size = 5;
//criteria
$criteria = new CDbCriteria();
$criteria->order = 'id';
$criteria->limit = $page_size;
//$criteria->with=array('pais.nombrePais');
$item_count = Alumnos::model()->count($criteria);
$pages =new CPagination($item_count);
$pages->pageSize=$page_size;
$pages->applyLimit($criteria);
$data['pages'] = $pages;
$data['datas'] = Alumnos::model()->with('nombrePais')->findAll($criteria);
$data['title'] = "Este es el listado";
$this->render('index', $data);
}
->with(‘nombrePais’)->
El error que me arroja es
CDbCommand falló al ejecutar la sentencia SQL: SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘nombrePais.’ in ‘on clause’
Antes de que llegue hasta aca le di un millon de vueltas, me lei cuanto aparecia en google, vi los videotutorials, y agotada ya la paciencia recurro a ustedes. Si alguien me lo explica o que me de una luz de guia estaria agradecido hasta la eternidad!