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

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

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

ПРИМЕР

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

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

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

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

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

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

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

защищенный логический _postSaveRelatedRecords (PhalconDbAdapterInterface $connection, PhalconMvcModelInterface[] $ Связанный)

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

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

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

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

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

Источник: ledsshop.ru

Стиль жизни - Здоровье!