• 技术文章 >php框架 >YII

    yii框架如何访问自定义模块下的controller

    VV2020-02-26 14:42:27原创789

    问题:

    Site控制器里面的action如何访问?如图:

    687f0727239ace4ea603e74cf2347c1.png

    解决方法:

    1、建立目录

    首先建立如上的目录结构,在api下的以及目录有三个文件夹和一个文件Module.php,这个php文件内容如下:

    <?php
    
    namespace app\modules\api;
    
    /**
     * api module definition class
     */
    class Module extends \yii\base\Module
    {
        /**
         * @inheritdoc
         */
        public $controllerNamespace = 'app\modules\api\controllers';
    
        /**
         * @inheritdoc
         */
        public function init()
        {
            parent::init();
    
            // custom initialization code goes here
        }
    }

    (推荐教程:yii框架

    2、web.php

    还记得项目根目录下的config文件夹下有个web.php文件么,添加如下字段:

    <?php
    
    $params = require __DIR__ . '/params.php';
    $db = require __DIR__ . '/db.php';
    
    $config = [
        'id' => 'basic',
        'basePath' => dirname(__DIR__),
        'bootstrap' => ['log'],
        'aliases' => [
            '@bower' => '@vendor/bower-asset',
            '@npm'   => '@vendor/npm-asset',
        ],
        'components' => [
            'request' => [
                // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
                'cookieValidationKey' => 'jjsYJ_ju0W8ifOv5mY3JBMI6DOppFlo6',
            ],
            'cache' => [
                'class' => 'yii\caching\FileCache',
            ],
            'user' => [
                'identityClass' => 'app\models\User',
                'enableAutoLogin' => true,
            ],
            'errorHandler' => [
                'errorAction' => 'site/error',
            ],
            'mailer' => [
                'class' => 'yii\swiftmailer\Mailer',
                // send all mails to a file by default. You have to set
                // 'useFileTransport' to false and configure a transport
                // for the mailer to send real emails.
                'useFileTransport' => true,
            ],
            'log' => [
                'traceLevel' => YII_DEBUG ? 3 : 0,
                'targets' => [
                    [
                        'class' => 'yii\log\FileTarget',
                        'levels' => ['error', 'warning'],
                    ],
                ],
            ],
            'db' => $db,
            /*
            'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
                ],
            ],
            */
        ],
        'modules' => [
            'api' => [
                'class' => 'app\modules\api\Module',
            ],
        ],
        'params' => $params,
    ];
    
    if (YII_ENV_DEV) {
        // configuration adjustments for 'dev' environment
        $config['bootstrap'][] = 'debug';
        $config['modules']['debug'] = [
            'class' => 'yii\debug\Module',
            // uncomment the following to add your IP if you are not connecting from localhost.
            //'allowedIPs' => ['127.0.0.1', '::1'],
        ];
    
        $config['bootstrap'][] = 'gii';
        $config['modules']['gii'] = [
            'class' => 'yii\gii\Module',
            // uncomment the following to add your IP if you are not connecting from localhost.
            //'allowedIPs' => ['127.0.0.1', '::1'],
        ];
    }
    
    return $config;

    3、api组件下的controllers

    现在我们在Modules/api/controllers下新建一个SiteControllers.php,内容如下:

    <?php
    
    namespace app\modules\api\controllers;
    
    use yii\web\Controller;
    
    
    class SiteController extends Controller
    {
        public function actionIndex()
        {
            echo "hello world";
        }
    }

    4、浏览器访问

    最后就是浏览器访问这个actionIndex了,浏览器输入: http://localhost/basic/web/index.php?r=api/site/index

    9a1164439726e272e764ca98b54c993.png

    完成!

    更多编程相关内容,请关注php中文网编程入门栏目!

    以上就是yii框架如何访问自定义模块下的controller的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:yii controller
    上一篇:yii框架中怎么生成超链接 下一篇:yii和thinkphp的区别
    线上培训班

    相关文章推荐

    • yii2框架下载后需要解压到什么位置• yii2中ajax怎么提交• yii2使用不等于号进行查询• yii框架怎么打开网页调试功能

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网