2013-05-02 1 views
0

Мы разрабатываем веб-сайт с использованием ZF2. Мы alreday начали проект. Мы установили приложение ZF2 skelton и интегрировали модуль альбома. Кажется, все работает. Теперь мы пытаемся интегрировать несколько форм zend в модуль. Формы eveyrything, которые мы сделали [путем изменения элементов модуля albulm). Я могу вставлять/обновлять/удалять и т. Д. Данные в таблицу по умолчанию, указанную в файле module.php [это для формы 1]. У меня есть другая форма, которая требует вставки/удаления/обновления в другую таблицу, я создал новый класс формы, класс таблицы (по модели) и т. Д. Когда я попытался вставить данные в Db с использованием пользовательского формата запроса, он выдает ошибку:zf2 DB insert с использованием пользовательского запроса не работает

File: 
/home/catholic/public_html/propertydosth/vendor/zendframework/zendframework/library/Zend/Db/Sql/Insert.php:298 
Message: 
The key adapter was not found in this objects column list. 

кажется значение адаптер не получает что-то ..

Мой код для вставки запроса:

$adapter = $this->tableGateway->getAdapter(); 
    $sql   = new Sql($adapter); 
    $insert  = $sql->insert('dad_cms'); 
    $newData  = array(
     'category_id' => $admin->category_id, 
     'cms_title' => $admin->cms_title, 
     'cmd_desc' => $admin->cmd_desc, 
     'seo_keywords' => $admin->seo_keywords, 
     'seo_titles' => $admin->seo_titles 
    ); 
    $insert->values($newData); 
    $selectString = $sql->getSqlStringForSqlObject($insert); 
    $results = $insert->adapter->query($selectString, Adapter::QUERY_MODE_EXECUTE); 

я получаю правильное значение запроса, когда я повторил $ ​​selectString. Любой, пожалуйста, сообщите, что не так в моем коде, чтобы сделать это.

+1

Отформатируйте свой вопрос, так кто-то на самом деле будет в состоянии прочитать это;) См [форматирование справку-сайт] (http://stackoverflow.com/ редактирование-помощь) – Sam

+0

Да. Я просто форматировал. Поскольку я долго пытаюсь это сделать. Также Сэм, ваш блог, очень помог нам настроить основные настройки zend. Надеюсь, вы сможете помочь в этом кризисе? – Dijo

+1

Я не слишком много знаю о 'Zend \ Db', но сообщение об ошибке говорит о том, что ваша последняя строка неверна' $ insert-> adapter -> ... 'вы пытаетесь получить доступ к столбцу, подобному этому. См. [Третий пример документации] (http://zf2.readthedocs.org/en/latest/modules/zend.db.sql.html#zend-db-sql-sql-quickstart). Это должно быть просто '$ adapter-> query (..)' я предполагаю – Sam

ответ

0

Наконец, Сэм помог мне в этом вопросе: Так правильный ответ станет [это будет полезно кому-то, имеющему аналогичную проблему. Даже я потратил много времени, чтобы отладить то же самое]:

$adapter = $this->tableGateway->getAdapter(); 
$sql   = new Sql($adapter); 
$insert  = $sql->insert('dad_cms'); 
$newData  = array(
    'category_id' => $admin->category_id, 
    'cms_title' => $admin->cms_title, 
    'cmd_desc' => $admin->cmd_desc, 
    'seo_keywords' => $admin->seo_keywords, 
    'seo_titles' => $admin->seo_titles 
); 
$insert->values($newData); 
$selectString = $sql->getSqlStringForSqlObject($insert); 
$results = $adapter->query($selectString, Adapter::QUERY_MODE_EXECUTE);