PHP, framework - Класс должен быть объявлен как абстрактный

1

Я представляю Phalcon, php framework, следуя руководству: https://docs.phalconphp.com/ru/latest/reference/tutorial-rest.html

Я столкнулся с этой проблемой: у меня есть эта ошибка в коде ниже

класс Роботы должны быть объявлены абстрактными или реализовать методы getConnectionService(), setForceExists() и т.д.

<?php

use Phalcon\Mvc\Model;
use Phalcon\Mvc\Model\Message;
use Phalcon\Mvc\Model\Validator\Uniqueness;
use Phalcon\Mvc\Model\Validator\InclusionIn;

class Robots extends Model{


public function validation()
{
    // Type must be: droid, mechanical or virtual
    $this->validate(
        new InclusionIn(
            array(
                "field"  => "type",
                "domain" => array(
                    "droid",
                    "mechanical",
                    "virtual"
                )
            )
        )
    );

    // Robot name must be unique
    $this->validate(
        new Uniqueness(
            array(
                "field"   => "name",
                "message" => "The robot name must be unique"
            )
        )
    );

    // Year cannot be less than zero
    if ($this->year < 0) {
        $this->appendMessage(new Message("The year cannot be less than zero"));
    }

    // Check if any messages have been produced
    if ($this->validationHasFailed() == true) {
        return false;
    }
}
} 
?>

И даже если я попытаюсь выполнить HTTP-запрос, я получаю:

Невозможно создать экземпляр абстрактных классов Robots

Есть идеи?

  • 0
    Добавить: использовать Phalcon \ Mvc \ Model; прежде чем объявить класс.
  • 0
    Да, извините, я пропустил эту часть. Загрузил его, но проблема все еще там.
Показать ещё 2 комментария
Теги:
model
http
phalcon

1 ответ

0

Вероятно, вы неправильно настроили службу базы данных. Убедись, что:

  • Имя службы - db (у меня возникли проблемы с изменением имен служб по умолчанию)
  • Вы установили службу db в свой основной $ di (некоторые могут создать экземпляр другого контейнера DI и изолировать службу базы данных там)
  • Всегда используйте $di->setShared(...) для регистрации глобальных сервисов

Пожалуйста, предоставьте дополнительную информацию и будем рады помочь.

  • 0
    Как я уже говорил, возможно, это проблема конфигурации между phalcon и phpStorm. Включая путь phalcon-tools / ide / 2.0.7 вместо phalcon-tools / ide / phpStorm, все работает хорошо.
  • 0
    Я читал это, но вряд ли так думаю ... phalcon-tools/ide/2.0.7 - просто заглушки для автозаполнения, а phalcon-tools/ide/phpStorm просто добавляет поддержку генерации кода ( подробнее здесь ). Так что, если вы не будете следовать этому руководству, используя командную строку для создания моделей и прочего, маловероятно, что эти включения как-то связаны с этим ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню