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

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

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

问题:

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

解决方法:

1、建立目录

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

<?phpnamespace 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,内容如下:

<?phpnamespace 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

完成!

更多编程相关内容,请关注9543建站博客编程入门栏目!

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

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:聊聊ThinkPHP如何访问控制器
下一篇:怎样使用React虚拟DOM

发表评论

关闭广告
关闭广告