私は以下のテーブルを持っています:cars、car_types、car_methods。これと私の問題は関係です。車には1つのタイプと1つの方法があります。CakePHP 3テーブル関係
私の目標は、車と彼の添付ファイル "car type"と "car_method"を表示することです。
車表:
id - type_id - method_id
Car_typesテーブル:
id - type
Car_methodsテーブル:
id - method
方法CA私は次のように試みたが、それは、関連するエラー与えないだろう
$this->Cars->CarTypes->find('all');
:
車モデル:
を、私は私のコントローラの内部で行うことができるようにnは、私は私のモデルテーブル内のようなものをこれを設定しました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'
]);
}
}
CarTypesモデル:
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'
]);
}
}
を使用することができますか? https://book.cakephp.org/3.0/en/orm/associations.html – burzum
はい、私はドキュメントを試してみましたが、私はそれをよく理解していません。私はあなたのためのコードを追加しました。 – CodeWhisperer
それは種類と方法のために多くの車を持っています。今のように、テーブル自体に型とメソッドを指しています。この本の中のチュートリアルや、日付の関連付けに関する一般的なSQLチュートリアルを行ってください。:) – burzum