2015-08-29 2 views
1

я представляю в Phalcon, в рамках PHP, следуя учебник: https://docs.phalconphp.com/en/latest/reference/tutorial-rest.htmlPHP, рамки - Класс должен быть объявлен абстрактным

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

Роботы класса должны быть объявлены абстрактными или реализуют методы '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 я получаю:

Невозможно создать абстрактные роботы класса

Любые идеи?

+0

Добавить: использовать Phalcon \ Mvc \ Model; перед объявлением класса. – Cerad

+0

Да, извините, я пропустил эту часть. Загрузили его, но проблема все еще там. – cventr

+0

Вы определили свою службу подключения к базе данных со следующего этапа обучения? – yergo

ответ

0

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

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

Просьба предоставить больше информации и будет рад помочь.

+0

Как я уже говорил, вероятно, это проблема конфигурации между phalcon и phpStorm. В том числе на пути phalcon-tools/ide/2.0.7 вместо phalcon-tools/ide/phpStorm все работает хорошо .. – cventr

+0

Я читал это, но вряд ли так думаю ... 'phalcon-tools/ide/2.0 .7' являются просто заглушками для автозаполнения, а 'phalcon-tools/ide/phpStorm' просто добавляет поддержку для генерации кода ([подробнее] (http://stackoverflow.com/questions/12284141/how-do-i -use-Phalcon-DevTools-ида-PhpStorm-в-PhpStorm/12285007)). Таким образом, если вы не следуете этому руководству, используя командную строку для создания моделей и т. Д., Маловероятно, что они включают в себя что-то с этим ... – cvsguimaraes

Смежные вопросы