0
我無法理解如何在CakePHP 1.3中保存相關模型數據。我有一個名爲Policy的模型和一個名爲Declinations的模型。政策有許多傾向。拒絕屬於政策。我想要做的就是將策略標識保存在「策略」表中的一個名爲policy_id的字段中。所以問題是我如何從相應的模型中獲取Policy_Id?我是否需要首先在Declination模型或控制器中設置Policy_Id,然後將其傳遞給視圖中的隱藏字段?保存相關模型數據
這裏是我的偏角模型
public $belongsTo = array(
'Policy' => array(
'className' => 'Policy',
'foreignKey' => 'policy_id'
我的策略模型如下
public $hasMany = array(
'Declination' => array(
'className' => 'Declination',
'foreignKey' => 'policy_id',
'dependent' => true
)
這裏是我的控制器
public function add($id = null) {
if (!empty($this->data)) {
$this->Declination->create();
if ($this->Declination->saveAll($this->data['Declination'])) {
$this->Session->setFlash(__('Declinations saved.', true));
$this->redirect(array(
'controller' => 'coverages',
'action' => 'view',
$id
));
} else {
$this->Session->setFlash(__('Declinations failed to save.', true));
}
}
$reasons = $this->Declination->Reason->find('list');
$contactTypes = $this->Declination->ContactType->find('list');
$this->set(compact('id', 'reasons', 'contactTypes'));
}
這是我的看法
<?php echo $this->UiForm->input("Declination.{$i}.first_name"); ?>
<?php echo $this->UiForm->input("Declination.{$i}.last_name"); ?>
<?php echo $this->UiForm->input("Declination.{$i}.company"); ?>
<?php echo $this->UiForm->input("Declination.{$i}.contact_type_id"); ?>
<?php echo $this->UiForm->input("Declination.{$i}.phone_number"); ?>
<?php echo $this->UiForm->input("Declination.{$i}.reason_id"); ?>
<?php echo $this->UiForm->input("Declination.{$i}.other", array(
'label' => 'If other, please supply a reason'
)); ?>
<?php echo $this->UiForm->input("Declination.{$i}.dated", array(
'type' => 'text',
'readonly' => 'readonly',
'data-datepicker' => ''
)); ?>
任何輸入將不勝感激!謝謝!
如果這回答了你的問題(不管你是否得出了同樣的結論),我會建議將它標記爲(複選標記),這樣其他人不會浪費時間試圖幫助你,如果它已經解決了: ) – Dave
是的,在我發佈這個問題後不久,我添加了這個視圖.... <?php echo $ this-> UiForm-> input(「Declination。{$ i} .policy_id」,array('type'= >'hidden','value'=>'$ policy_id')); ?> ....現在我唯一要做的就是在控制器中調用find方法,然後將它發送到視圖。我唯一不知道如何執行它。現在是我在Declinations控制器中的Im如何訪問父模型中的數據?我知道協會是以一種方式定義的。我將如何訪問另一個方向的數據?我試過$ this-> Declination-> Policy,但它不起作用。 – SkillSet
這是一個很常見的問題,通過stackoverflow以及通過谷歌發現。 – Dave