我有一个问题创建关系(外键)MI模型(表)之间,我跟着蛋糕文档,但无法正常工作关系(外键)CakePHP的
的关系是马卡报1-N Modelos
模型Marca.php
<?php
class Marca extends AppModel
{
var $name = 'Marca';
public $displayField = 'nombre';
var $hasMany = array(
'Modelo' => array(
'className' => 'Modelo',
'foreignKey' => 'marca_id'
)
);
}
?>
模型Modelo.php
<?php
class Modelo extends AppModel
{
var $name = 'Modelo';
var $belongsTo = array(
'Marca' => array(
'className' => 'Marca',
'foreignKey' => 'marca_id'
)
);
}
?>
ModelosContro米勒
<?php
class ModelosController extends AppController{
var $name = 'Modelos';
var $helpers = array('Html','Form');
//var $scaffold;
function index(){
$modelos = $this->Modelo->find('all',array(
'fields'=>array(
'Modelo.nombre',
'Modelo.valido',
'Modelo.id',
'Modelo.marca_id'),
'order'=>'Modelo.nombre ASC')
);
$this->set('modelos',$modelos);
}
function add(){
if (!empty($this->data)){
$this->Modelo->create();
if ($this->Modelo->save($this->data)){
$this->Session->SetFlash('Modelo Nuevo Creado');
$this->redirect(array('action'=>'index'),null,true);
}else{
$this->Session->SetFlash('No se ha Agregado el Modelo, intente de Nuevo');
}
}
// $this->loadModel('Marca');
$marcas = $this->Modelo->Marca->find('list'); <<-----this is 31 line, where is the error
debug($marcas);
$this->set(compact('marcas'));
}
function edit($id = null){
if (!$id){
$this->Session->SetFlash('Modelo Incorrecto');
$this->redirect(array('action'=>'index'),null,true);
}
if (empty($this->data)){
$this->data = $this->Modelo->find('first',array('conditions'=>array('Modelo.id'=> $id)));
}else{
if ($this->Modelo->save($this->data)) {
$this->Session->SetFlash('El Modelo se ha Guardado');
$this->redirect(array('action'=>'index'),null,true);
}else{
$this->Session->SetFlash('La Modelo No fue Guardado, intente de Nuevo');
}
}
}
}
?>
错误抛出是:
错误:调用一个成员函数查找()一个非对象 文件:/var/www/tlfmovil/app/Controller/ModelosController.php
Line:31
我认为错误是因为关系设置不正确,请帮助我。
对不起,我的英语不好!
不使用英语进行命名的问题是,由于复数的处理方式不同,因此常规会变得无法使用。尝试在你的Marca模型中设置'public $ useTable ='marcas';'。 – Nunser 2013-04-23 15:05:57
@nuns - 出现错误并不是因为缺少表格,而是因为没有找到模型,因为某些关联不起作用。 – Dave 2013-04-23 15:20:57
检查是否实际使用'Modelo'模型,并且CakePHP不生成'通用'模型; '调试(get_class($ this-> Modelo));' – thaJeztah 2013-04-23 22:22:20