Статьи

Phalcon: Метод сохранения не реализован: устранение неполадок и решение

Phalcon: Метод сохранения не реализован: устранение неполадок и решение

Если вы знакомы с использованием PHP-фреймворка Phalcon (https://phalconphp.com/en/), возможно, вы столкнулись с проблемой/ошибкой при попытке сохранить данные с помощью Phalcon ORM.

ПРИМЕР

Если у вас есть модель, и вы устанавливаете данные следующим образом:

Теперь проблема, с которой вы столкнетесь при запуске этого кода, вы можете получить эту ошибку из исключения:

Не реализованы

Нет линий. Нет Следа… Нет. Что вообще означает «Не реализовано»!? Хороший вопрос….

ОТВЕТ И РЕШЕНИЕ

По-видимому, в Phalcon (мы заметили это на Phalcon 2), когда у вас есть реляционные столбцы в форме массива в вашем hasMany() или hasOne(). Например:

Phalcon не реализует метод save(), но вместо этого реализует другой метод, называемый _postSaveRelatedRecords(). Его определение выглядит следующим образом:

защищенный логический _postSaveRelatedRecords (Phalcon\Db\AdapterInterface $connection, Phalcon\Mvc\ModelInterface[] $ Связанный)

Вот почему вы получаете ошибку Not Implemented при попытке использовать метод save() Phalcon. Моя команда и я собираемся попросить Phalcon написать функцию, которая позволит вам обойти эту логику и по-прежнему использовать метод сохранения.

Читать:
Как мы настроили Mysql для хранения смайлов в YourQuote?

На данный момент вы можете просто создать дубликат модели с добавлением мира «Single» к имени модели. Во-вторых, вы захотите установить в качестве источника модели ту же таблицу базы данных, что и исходная модель. Например:

В вашем контроллере просто используйте эту модель вместо другой модели, чтобы использовать метод сохранения. Это правда, что вы не сможете иметь массивы реляционных hasMany() или hasOne. Однако вы по-прежнему можете использовать hasMany() и hasOne(), просто убедитесь, что они соответствуют обычным определениям. Нормальные определения таковы:

$this->hasMany("id", "RobotsParts", "robots_id");
$this->hasOne("id", "RobotsParts", "robots_id");

Я надеюсь, что это поможет вам, если вы пытаетесь устранить неполадки, почему ваш метод Phalcon Save() не сохраняет должным образом. Удачи!

Похожие записи

Понимание терминологии C, взгляд для пустышек

admin

Фантастические советы!

admin

Основы Git Fu для технических писателей

admin

Как написать код с улучшенной реакцией с помощью useMemo

admin

Часть 2: Var vs Const vs Let

admin

Разработка языковых привязок с помощью xtensor

admin