我定义了这些模型
<?php
class Viaje extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('fecha', 'date');
$this->hasColumn('productor_id', 'integer');
$this->hasColumn('transporte_id', 'integer');
$this->hasColumn('chofer_id', 'integer');
$this->hasColumn('desde', 'string');
$this->hasColumn('hasta', 'string');
$this->hasColumn('kilometros', 'decimal');
$this->hasColumn('comision', 'decimal');
$this->hasColumn('tarifa_transportadora', 'decimal');
$this->hasColumn('tarifa_transporte', 'decimal');
$this->hasColumn('cargos_extras', 'decimal');
$this->hasColumn('imputado', 'integer', 1, array('default' =>0));
$this->hasColumn('borrado', 'integer', 1, array('default' =>0));
}
public function setUp() {
$this->setTableName('viaje');
$this->actAs('Timestampable');
$this->hasOne('Productor', array(
'local' => 'productor_id',
'foreign' => 'id')
);
$this->hasOne('Transporte', array(
'local' => 'transporte_id',
'foreign' => 'id')
);
$this->hasOne('Chofer', array(
'local' => 'chofer_id',
'foreign' => 'id')
);
$this->hasMany('Chofer as Choferes', array(
'local' => 'id',
'foreign' => 'transporte_id')
);
}
// setters
public function setID($id) { $this->_set('id', $id); }
public function setFecha($fecha) { $this->_set('fecha', $fecha); }
public function setProductorID($productorID) { $this->_set('productor_id',
$productorID); }
public function setProductor($productor) { $this->_set('productor',
$productor); }
public function setTransporteID($transporteID) {
$this->_set('transporte_id', $transporteID); }
public function setTransporte($transporte) { $this->_set('transporte',
$transporte); }
public function setChoferID($choferID) { $this->_set('chofer_id',
$choferID); }
public function setChofer($chofer) { $this->_set('chofer', $chofer); }
public function setDesde($desde) { $this->_set('desde', $desde); }
public function setHasta($hasta) { $this->_set('hasta', $hasta); }
public function setKilometros($kilometros) { $this->_set('kilometros',
$kilometros); }
public function setComision($comision) { $this->_set('comision', $comision);
}
public function setTarifaTransportadora($tarifaTransportadora) {
$this->_set('tarifa_transportadora', $tarifaTransportadora); }
public function setTarifaTransporte($tarifaTransporte) {
$this->_set('tarifa_transporte', $tarifaTransporte); }
public function setCargosExtras($cargosExtras) {
$this->_set('cargos_extras', $cargosExtras); }
public function setImputado($imputado) { $this->_set('imputado', $imputado);
}
public function setBorrado($borrado) { $this->_set('borrado', $borrado); }
// getters
public function getID() { return $this->_get('id'); }
public function getFecha() { return $this->_get('fecha'); }
//public function getProductorID() { return $this->_get('productor_id'); }
/*
* @return Productor
*/
public function getProductor() { return $this->_get('productor'); }
//public function getTransporteID() { return $this->_get('transporte_id'); }
/*
* @return Transporte
*/
public function getTransporte() { return $this->_get('transporte'); }
//public function getChoferID() { return $this->_get('chofer_id'); }
/*
* @return Chofer
*/
public function getChofer() { return $this->_get('chofer'); }
public function getDesde() { return $this->_get('desde'); }
public function getHasta() { return $this->_get('hasta'); }
public function getKilometros() { return $this->_get('kilometros'); }
public function getComision() { return $this->_get('comision'); }
public function getTarifaTransportadora() { return
$this->_get('tarifa_transportadora'); }
public function getTarifaTransporte() { return
$this->_get('tarifa_transporte'); }
public function getCargosExtras() { return $this->_get('cargos_extras'); }
public function getImputado() { return $this->_get('imputado'); }
public function getBorrado() { return $this->_get('borrado'); }
/**
* Marca como borrado un transporte
*/
public function delete(){
$this->setBorrado(1);
$this->save();
}
}
<?php
class Productor extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('nombre', 'string', 60);
$this->hasColumn('borrado', 'integer', 1, array('default' =>0));
}
public function setUp() {
$this->setTableName('productor');
$this->actAs('Timestampable');
}
public function setID($id) { $this->_set('id', $id); }
public function setNombre($nombre) { $this->_set('nombre', $nombre); }
public function setBorrado($borrado) { $this->_set('borrado', $borrado); }
// getters
public function getID() { return $this->_get('id'); }
public function getNombre() { return $this->_get('nombre'); }
public function getBorrado() { return $this->_get('borrado'); }
/**
* Marca como borrado un transporte
*/
public function delete(){
$this->setBorrado(1);
$this->save();
}
}
<?php
class Transporte extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('nombre', 'string', 60);
$this->hasColumn('cuit', 'integer', 11);
$this->hasColumn('borrado', 'integer', 1, array('default' =>0));
}
public function setUp() {
$this->setTableName('transporte');
$this->actAs('Timestampable');
$this->hasMany('Chofer as Choferes', array(
'local' => 'id',
'foreign' => 'transporte_id'
));
}
// setters
public function setNombre($nombre) { $this->nombre = $nombre; }
public function setCUIT($cuit) { $this->cuit = $cuit; }
public function setBorrado($borrado) { $this->borrado = $borrado; }
// getters
public function getNombre() { return $this->nombre; }
public function getCUIT() { return $this->cuit; }
public function getBorrado() { return $this->borrado; }
/**
* Marca como borrado un transporte
*/
public function delete(){
$this->setBorrado(1);
$this->save();
}
}
<?php
class Chofer extends Doctrine_Record {
public function setTableDefinition() {
$this->hasColumn('transporte_id', 'integer', 10);
$this->hasColumn('nombre', 'string', 60);
$this->hasColumn('cuil', 'integer', 11);
$this->hasColumn('dominio', 'string', 6);
$this->hasColumn('borrado', 'integer', 1, array('default' =>0));
}
public function setUp() {
parent::setUp();
$this->setTableName('chofer');
$this->actAs('Timestampable');
}
// setters
public function setTransporteId($transporte_id) { $this->transporte_id =
$transporte_id; }
public function setNombre($nombre) { $this->nombre = $nombre; }
public function setCUIL($cuil) { $this->cuil = $cuil; }
public function setDominio($dominio) { $this->dominio = $dominio; }
public function setBorrado($borrado) { $this->borrado = $borrado; }
// getters
public function getTransporteId() { return $this->transporte_id; }
public function getNombre() { return $this->nombre; }
public function getCUIT() { return $this->cuit; }
public function getDominio() { return $this->dominio; }
public function getBorrado() { return $this->borrado; }
/**
* Marca como borrado un transporte
*/
public function delete(){
$this->setBorrado(1);
$this->save();
}
}
但是当我做$viaje = Doctrine::getTable('Viaje')->find(1);
并尝试时
访问$viaje->productor
或$viaje->getProductor()
,我收到此异常:
致命错误:未捕获的异常'Doctrine_Record_UnknownPropertyException' 消息'未知记录属性/相关组件“生产者”打开 F:\ Proyectos \ TDT中的“Viaje” 应用程序\代码\应用\助手\教义\ lib中\学说\记录\筛选\ Standard.php:55
堆栈追踪:
#0 F:\ Proyectos \ TDT APPS \代码\程序\佣工\原则\ LIB \原则\ Record.php(1395): Doctrine_Record_Filter_Standard-&gt; filterGet(Object(Viaje),'productor')
#1 F:\ Proyectos \ TDT Apps \ code \ application \ models \ viaje.php(71): Doctrine_Record-&GT; _get( '生产方')
#2 F:\ Proyectos \ TDT Apps \ code \ application \ controllers \ dashboard.php(20): Viaje-&GT; getProductor()
#3 [内部功能]:仪表板 - &gt; index()
#4 F:\ Proyectos \ TDT Apps \ code \ system \ core \ CodeIgniter.php(297): call_user_func_array(Array,Array)
#5 F:\ Proyectos \ TDT Apps \ code \ index.php(163): require_once( 'F:\ PROYECTOS \ TD ...')
#6 {main} 抛出F:\ Proyectos \ TDT APPS \代码\程序\佣工\原则\ LIB \原则\记录\过滤器\ Standard.php 在第55行
为什么我无法加载相关记录?
答案 0 :(得分:1)
区分大小写吗?请改为$viaje->Productor
?