@Pios88

Почему может не работать ActiveController в Yii2?

Есть модель:
namespace app\models;
use yii\db\ActiveRecord;

class Book extends ActiveRecord
{
    public static function tableName()
    {
       return 'book';
    }
    public static function primaryKey()
    {
        return ['id'];
    }
    public function getAuthor()
    {
        return $this->hasOne(Author::className(), ['id' => 'author_id']);
    }
}

Она связана с моделью Author, но тут все норм, связи работают в другом функционале прекрасно.
Мне нужно организовать выдачу данных в формате json по RESTful отдельным контроллером.
Для начала я обратился к документации.
И скопипастил с заменой на мое имя модели и контроллера код самого контроллера, простейший, приведенный в документации:
namespace app\controllers;
use yii\rest\ActiveController;

class BookController extends ActiveController
{
    public $modelClass = 'app\models\Book';
}


В 'urlManager' добавил: 'rules' => [['class' => 'yii\rest\UrlRule', 'controller' => 'book'],],
В config/web.php добавил: 'request' => ['parsers' => [ 'application/json' => 'yii\web\JsonParser', ]]

Согласно документации - этого достаточно, чтобы получить готовое API (допиливание - вопрос пока второстепенный). Но по факту и через curl и через restlet_client (расширение Chrome) я получаю:
status: 500 и PHP Fatal Error Class app\controllers\ActiveController; not found

Я даже примерно не могу предположить, что не так. Меня эта ситуация в тупик поставила. Делал через restlet_client запрос к другим контроллерам и получал 200 и код страницы целиком. То есть дело не в инструментах 100%, что-то не так с кодом. Какие есть варианты? Почему стандартный 100% рабочий пример из документации вдруг не работает? И где может быть ошибка?
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы