2
私のコントローラにログインアクションを追加したいのですが、私にページが見つかりませんでした。 このような投稿がたくさんあることは知っていますが、誰も私をまだ助けてくれていません。私のコントローラのyii2のyii rest activecontroller拡張コントローラにカスタムアクションを追加する方法は?
コード:設定/ web.phpから
<?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();
}
}
?>
コード:UserController.phpその後
<?php
namespace app\models;
use Yii;
use yii\db\ActiveRecord;
/**
* My UserMaster model
*/
class UserMaster extends ActiveRecord
{
public static function tableName()
{
return 'user_master'; // the name of the table
}
// other code ...
}
:
'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 /」をextraPatternsの「GETログイン」に変更するだけです。 (これで/ user/user/loginから取得しようとしています) – karpy47