что-то не так с моим кодом, я думаю, вот мой контроллер
namespace frontend\modules\v1\controllers;
use frontend\modules\v1\models\BrandApi;
use yii\rest\ActiveController;
class BrandController extends ActiveController {
public $serializer = [
'class' => 'yii\rest\Serializer',
'collectionEnvelope' => 'results',
];
public $modelClass = 'frontend\modules\v1\models\BrandApi';
public function behaviors() {
$behaviors[] = [
'class' => \yii\filters\ContentNegotiator::className(),
'formats' => [
'application/json' => \yii\web\Response::FORMAT_JSON,
],
];
// $behaviors['authenticator'] = [
// 'class' => \yii\filters\auth\HttpBearerAuth::className(),
// ];
// $behaviors['access'] = [
// 'class' => \yii\filters\AccessControl::className(),
// 'only' => ['list'],
// 'rules' => [
// [
// 'actions' => ['list'],
// 'allow' => true,
// 'roles' => ['@'],
// ],
// ],
// ];
$behaviors['verbs'] = [
'class' => \yii\filters\VerbFilter::className(),
'actions' => [
'list' => ['get'],
],
];
return $behaviors;
}
public function actionList() {
return ['success' => true, 'results' => BrandApi::find()->all()];
}
}
Я изменил ationIndex на actionList, потому что я не получил результат "успеха"
поэтому если я введу неправильную ссылку, я получу ответ в формате html, а не в формате json
вот мой конфигурационный файл в модуле API
<?php
return [
'components' => [
'formatters' => [
\yii\web\Response::FORMAT_JSON => [
'class' => 'yii\web\JsonResponseFormatter',
'prettyPrint' => true,
'encodeOptions' => JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE,
],
],
// 'response' => [
// 'class' => 'yii\web\Response',
// 'on beforeSend' => function ($event) {
// $response = $event->sender;
// if ($response->data !== null && Yii::$app->request->get('suppress_response_code')) {
// $response->data = [
// 'success' => $response->isSuccessful,
// 'data' => $response->data,
// ];
// // $response->statusCode = 200;
// 'http_response' = $response->statusCode;
// }
// $response->data = [
// 'success' => $response->isSuccessful,
// 'data' => $response->data,
// ];
// // $response->statusCode = 200;
// 'http_response' = $response->statusCode;
// },
// ],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'class' => 'yii\rest\UrlRule',
'pluralize' => false,
'controller' => 'api/default',
],
],
],
];
моя модель
<?php
namespace frontend\modules\v1\models;
use common\models\Brand;
class BrandApi extends Brand {
public function fields() {
return ['title'];
}
}
Я попытался добавить конфигурацию ответа, которую я нашел в руководстве, но не сработал
Я хочу получать сообщения об ошибках типа
![enter image description here](https://i.stack.imgur.com/GDcDP.png)
Сначала я думал, что это было поведение доступа, но это не так! Я использовал поведение доступа, чтобы убедиться, что пользователь, запрашивающий API, подключен