2017-01-13 2 views
1

У меня есть четыре таблицыCakePHP отношение многоуровневого

course_schedules

id name 

course_prices

id price currency_id 

price_schedules

id course_schedule_id course_price_id 

валюта

id name code 
  1. Расписание курса модель имеет много Цены расписаний

  2. Стоимость курс Есть много Таблиц цен

  3. Стоимости курса принадлежит к валюте

  4. Ценовые принадлежат к Списку курса

  5. Цена Sche Dule принадлежит к цене курса

  6. валюта многие цены курс

Теперь все это все работало нормально, но моя проблема

В PriceSchedulesController

я могу получить course_schedules таблицы таблица детали course_prices подробнее

Но я также хочу получить код валюты вместе с ценой Как 200 USD что означает 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 USD

ответ

1

На основе ваших отношений таблица price_schedules уже связана с Валютой:

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 
+0

Спасибо большое – daulat

+0

пожалуйста ! –