Для меня это звучит как простое условие в поле company_id
:
$this->PlanDetail->find('all', array('conditions' => array('company_id' => $company_id)))
Или, если вы хотите, чтобы компания тоже и ваши ассоциации правильно подключены:
$company = $this->Company->read(null, $company_id);
// echo $company['Company']
// echo $company['PlanDetail'][0], $company['PlanDetail'][1] etc...
Вам нужно получить $company_id
для запроса откуда-то, обычно это URL:
public function pd_list_by_company($company_id)
Затем перейдите к этому действию с URL /plan_details/pd_list_by_company/42
, который можно связать с помощью $this->Html->link('foobar', array('controller' => 'plan_details', 'action' => 'pd_list_by_company', 42))
.
Полный пример:
public function view($planId) {
$plan = $this->PlanDetail->read(null, $planId);
if (!$plan) {
$this->cakeError('error404');
}
$otherPlansBySameCompany = $this->PlanDetail->find('all', array(
'conditions' => array('company_id' => $plan['PlanDetail']['company_id'])
));
$this->set(compact('plan', 'otherPlansBySameCompany'));
}