Je suis confronté à un problème bizarre. je le modèle Config
, en collaboration avec ces associations:CakePHP: Décalage chaîne non initialisé: 0 en vue
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' => ''
),
);
Dans mon ConfigsController
je l'action 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'));
}
Et dans mon edit.ctp
vue, j'ai:
echo $this->Form->input('Language');
echo $this->Form->input('Webmaster');
echo $this->Form->input('Group');
Maintenant, voici le problème: Le groupe est correctement sélectionné, mais les deux autres (webmaster et lang uage) sont reseted sur la première option, ont passelected
attribut, et comme un « bonus », la langue affiche sélectionnez cette erreur: Notice (8): Uninitialized string offset: 0 [CORE/cake/libs/view/helper.php, line 859]
Je me suis battu pendant près de 2 heures et ne pouvait pas trouver le isuue pour cette problème bizarre. Pourrais-tu m'aider s'il te plaît? Je vous remercie!
EDIT
C'est ce que le débogueur montre:
Helper::__selectedArray() - CORE/cake/libs/view/helper.php, line 859
Aide :: valeur() - CORE/cake/libs/view/helper.php, ligne 712 :: Aide _initInputField() - CORE/gâteau/libs/view/helper.php, ligne 753 FormHelper :: _ initInputField() - CORE/gâteau/libs/view/helpers/form.php, ligne 2182 FormHelper :: select() - CORE/gâteau/libs/vue/helpers/form.php, ligne 1438 FormHelper :: entrée() - CORE/gâteau/l ibs/view/helpers/form.php, ligne 882 include - APP/views/configs/edit.ctp, ligne 10 Voir :: _ render() - CORE/cake/libs/view/view.php, ligne 723 Vue :: render() - CORE/gâteau/libs/view/view.php, ligne 419 Controller :: render() - CORE/gâteau/libs/controller/controller.php, ligne 913 Dispatcher :: _ invoke() - CORE/gâteau/Dispatcher.php, ligne 207 Dispatcher :: dispatch() - CORE/gâteau/Dispatcher.php, ligne 171 [principale] - APP/Webroot/index.php, ligne 83
Et l'onglet 'code':
if (!empty($data)) {
foreach ($data as $var) {
$array[$var[$key]] = $var[$key];
(Cliquez sur "Notice (8)" pour l'ouvrir> Puis cliquez sur "Code") Cela pourrait même vous aider à trouver la solution. – RabidFire
J'ai modifié la question. J'ai essayé de comprendre quel était le problème de ce que le débogueur montrait, mais je ne pouvais pas. – linkyndy
Pourriez-vous nous montrer la ligne 10 de configs/edit.ctp? – RabidFire