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 написать функцию, которая позволит вам обойти эту логику и по-прежнему использовать метод сохранения.

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

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

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

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

См. также:  Спасибо, что поделились этим, Карина. Здесь было несколько, о которых я не знал.
Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: