Почтальон обращается к маршруту через API, созданный в Yii2, но код, который я вставляю в действие, соответствующее этому маршруту, не работает. Следуйте запросу print:
postman-request-print
Запрос возврата не должен был быть тем, что на изображении, потому что код, который я вставил в ' действие 'create' было таким:
<?php
namespace app\modules\api\controllers;
use Yii;
use app\modules\pesquisa_mercado\models\PontoDaPesquisa;
class PesquisaPontoController extends \yii\rest\ActiveController
{
public $modelClass = 'app\modules\pesquisa_mercado\models\PesquisaPonto';
public function behaviors()
{
$behaviors = parent::behaviors();
return $behaviors + [
[
'class' => \yii\filters\auth\HttpBearerAuth::className(),
'except' => ['options'],
],
'verbs' => [
'class' => \app\modules\api\behaviors\Verbcheck::className(),
'actions' => [
'index' => ['GET'],
'create' => ['POST'],
'update' => ['PUT'],
'view' => ['GET'],
'delete' => ['DELETE'],
'finalizar-pesquisa' => ['POST'],
],
],
];
}
public function actions()
{
$actions = parent::actions();
unset($actions['update']);
return $actions;
}
public function actionCreate()
{
die("Test"); // test inserted here
}
}
То есть возвращение должно было быть 'Test'. По какой-то причине я не знаю, маршрут перенаправляется в другое место.
Я также обнаружил, что запрос проходит через метод getLinks (), присутствующий в модели PesquisaPonto:
<?php
namespace app\modules\pesquisa_mercado\models;
class PesquisaPonto extends \yii\db\ActiveRecord implements \yii\web\Linkable
{
/**
* @inheritdoc
*/
public static function tableName()
{
return '{{%pesquisa_ponto}}';
}
/**
* @inheritdoc
*/
public function getLinks() // the requisition also passes through here!
{
return [
Link::REL_SELF => Url::to(['pesquisa-ponto/view', 'id' => $this->id], true),
'index' => Url::to(['pesquisa-ponto'], true)
];
}
}
Также следуйте конфигурации urlManager:
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => true,
'rules' => [
// Pontos de Pesquisa
// api/pesquisa-ponto
[
'class' => 'yii\rest\UrlRule',
'controller' => [
'api/pesquisa-ponto'
],
'pluralize' => false,
],
],
]
Я до сих пор не нашел причину, по которой Yii2 перенаправляет маршрут и не позволяет почтальону получить доступ к действию 'create' ...