Есть модель:
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% рабочий пример из документации вдруг не работает? И где может быть ошибка?