【发布时间】:2017-03-03 10:11:04
【问题描述】:
我有以下表格:cars、car_types 和 car_methods。我的问题是关系。汽车有一种类型和一种方法。
我的目标是展示汽车和他的附件“汽车类型”和“汽车方法”。
汽车表:
id - type_id - method_id
Car_types 表:
id - type
Car_methods 表:
id - method
如何在我的模型表中进行设置,以便我可以在我的控制器中执行以下操作:
$this->Cars->CarTypes->find('all');
我尝试如下,但它会给出一个没有关联的错误:
车型:
class CarsTable extends Table {
public function initialize(array $config)
{
parent::initialize($config);
$this->setTable('cars');
$this->setDisplayField('id');
$this->setPrimaryKey('id');
$this->hasOne('CarTypes', [
'className' => 'Cars.CarTypes',
'foreignKey' => 'type_id',
'propertyName' => 'type'
]);
$this->hasOne('CarMethods', [
'className' => 'Cars.CarMethods',
'foreignKey' => 'method_id',
'propertyName' => 'method'
]);
}
}
车型:
class CarTypesTable extends Table {
public function initialize(array $config) {
parent::initialize($config);
$this->setTable('car_types');
$this->setDisplayField('id');
$this->setPrimaryKey('id');
$this->hasMany('Cars', [
'foreignKey' => 'type_id'
]);
}
}
CarMethots 模型:
class CarMethodsTable extends Table {
public function initialize(array $config) {
parent::initialize($config);
$this->setTable('car_method');
$this->setDisplayField('id');
$this->setPrimaryKey('id');
$this->hasMany('Cars', [
'foreignKey' => 'method_id'
]);
}
}
【问题讨论】:
-
是的,我已经尝试过文档,但我不太明白。我已经为你添加了代码。
-
它有很多类型和方法的汽车。像现在一样,指向表本身的类型和方法。做本书中的教程或一些关于如何关联日期的通用 SQL 教程。 :)
标签: mysql cakephp cakephp-3.0