我有四张桌子
course_schedules
id name
course_prices
id price currency_id
price_schedules
id course_schedule_id course_price_id
货币
id name code
课程表模型有很多价格表
课程价格有很多价格表
课程价格属于货币
价格表属于课程表
价格表属于课程价格
货币有很多课程价格
现在所有这些事情都运转良好,但我的问题是
在PriceSchedulesController中
我可以获得course_schedules表详细信息course_prices表详细信息
但我也希望获得货币代码以及200美元的价格 这意味着price_schedules间接依赖货币
这种关系有任何技术
public function index() {
$this->PriceSchedule->recursive = 0;
$this->set('PriceSchedules', $this->Paginator->paginate());
}
结果
Array
(
[CourseSchedule] => Array
(
[id] => 1
[name] => course one
)
[CoursePrice] => Array
(
[id] => 2
[currency_id] => 1
[price] => 200
)
)
你可以在数组中看到currency_id有,但是如200美元的货币代码
答案 0 :(得分:1)
根据您的关系,您的price_schedules表已经与Currency相关:
1.price_schedules belongs to course_price
2.course_price belongs to currency
3.hence price_schedule also dependent on currency
当您检索数据时,您需要使用包含良好的数据,例如:
public function index() {
// $this->PriceSchedule->recursive = 0;
$this->paginate = [
'contain'=>['CoursePrice.Currency'] // using contain this way you can easiy get that
];
$this->set('PriceSchedules', $this->Paginator->paginate());
}
或者你也可以通过递归属性来做到这一点:
$this->PriceSchedule->recursive = 2;// this will retrieve all the related models