Я хочу добавить действие входа в контроллер, давая мне страницу не найдена ошибка. Я знаю, что есть много сообщений вроде этого, но пока никто мне не помог.Как добавить пользовательское действие в yii rest activecontroller расширенный контроллер в yii2?
код для моего контроллера:
<?php
// controller for rest apis
namespace app\controllers;
use yii\rest\ActiveController;
use yii\rest\Controller;
use yii\web\Response;
//use yii\web\Controller;
use app\models\UserMaster;
//class UserController extends Controller
class UserController extends ActiveController
{
public $modelClass = 'app\models\UserMaster';
public $pluralize = false;
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON;
return $behaviors;
}
public function actionLogin(){
return UserMaster::find()->all();
}
public function login(){
return UserMaster::find()->all();
}
}
?>
код от конфигурации/web.php:
'urlManager' => [
'enablePrettyUrl' => true,
'class'=>'yii\web\UrlManager',
'showScriptName' => false,
//for specifying rest api model to be used
//and by pluralize=false we can use with singular name rather than plural as default (users)
'enableStrictParsing' => true,
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => 'user',
'pluralize'=>false,
'extraPatterns' => [
'GET /user/login/' => 'login', // 'xxxxx' refers to 'actionXxxxx'
],
]
],
],
Почему вы не используете $ behaviors ['authenticator'] для использования аутентификации? ты знаешь об этом? – yafater
Кажется, просто измените 'GET/user/login /' на 'GET login' в extraPatterns. (Теперь он пытается получить из/user/user/login.) – karpy47