私は奇妙な問題を扱っています。Config
これらの関連付けとともに、モデルがあります。
var $belongsTo = array(
'Language' => array(
'className' => 'Language',
'foreignKey' => 'default_language',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Webmaster' => array(
'className' => 'User',
'foreignKey' => 'webmaster',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Group' => array(
'className' => 'Group',
'foreignKey' => 'default_group',
'conditions' => '',
'fields' => '',
'order' => ''
),
);
私のConfigsController
中で私はedit()
行動を起こします:
function edit($id = null) {
if (!$id && empty($this->data)) {
$this->Session->setFlash(__('Invalid config', true));
$this->redirect(array('action' => 'index'));
}
if (!empty($this->data)) {
if ($this->Config->save($this->data)) {
$this->Session->setFlash(__('The config has been saved', true));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The config could not be saved. Please, try again.', true));
}
}
if (empty($this->data)) {
$this->data = $this->Config->read(null, $id);
}
$languages = $this->Config->Language->find('list');
$webmasters = $this->Config->Webmaster->find('list');
$groups = $this->Config->Group->find('list');
$this->set(compact('languages', 'groups', 'webmasters'));
}
そして私のedit.ctp
見解では、私は持っています:
echo $this->Form->input('Language');
echo $this->Form->input('Webmaster');
echo $this->Form->input('Group');
ここで問題があります。グループは正しく選択されていますが、他の2つ(ウェブマスターと言語)は最初のオプションでリセットされ、属性がなく selected
、「ボーナス」として、言語選択で次のエラーが表示されます。Notice (8): Uninitialized string offset: 0 [CORE/cake/libs/view/helper.php, line 859]
私はほぼ2時間苦労し、この奇妙な問題の問題を見つけることができませんでした。手伝っていただけませんか?ありがとうございました!
編集
これは、デバッガーが示すものです。
Helper::__selectedArray() - CORE/cake/libs/view/helper.php, line 859
Helper :: value()-CORE /cake / libs / view / helper.php、行712 Helper :: _ initInputField()-CORE /cake / libs / view / helper.php、行753 FormHelper :: _ initInputField()-CORE /cake/libs/view/helpers/form.php、2182行目FormHelper :: select()-CORE /cake / libs / view / helpers / form.php、1438行目FormHelper :: input()-CORE /cake / libs /view/helpers/form.php、行882インクルード-APP / views / configs / edit.ctp、行10 View :: _ render()-CORE /cake / libs / view / view.php、行723 View :: render ()-CORE / Cake / libs / view / view.php、行419 Controller :: render()-CORE /cake / libs / controller / controller.php、行913 Dispatcher :: _ invoke()-CORE /cake / dispatcher .php、207行目Dispatcher :: dispatch()-CORE /cake / dispatcher.php、171行目[メイン]-APP / webroot / index.php、83行目
そして、「コード」タブで:
if (!empty($data)) {
foreach ($data as $var) {
$array[$var[$key]] = $var[$key];