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

互联网 20-2-26

问题:

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

解决方法:

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

完成!

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

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

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: controller
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:yii框架中怎么生成超链接

相关资讯