問題:
Site控制器里面的action如何訪問?如圖:
解決方法:
1、建立目錄
首先建立如上的目錄結構,在api下的以及目錄有三個文件夾和一個文件Module.php,這個php文件內容如下:
<?php namespace appmodulesapi; /** * api module definition class */ class Module extends YIIbaseModule { /** * @inheritdoc */ public $controllerNamespace = 'appmodulesapicontrollers'; /** * @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'?=>?'yiicachingFileCache', ????????], ????????'user'?=>?[ ????????????'identityClass'?=>?'appmodelsUser', ????????????'enableAutoLogin'?=>?true, ????????], ????????'errorHandler'?=>?[ ????????????'errorAction'?=>?'site/error', ????????], ????????'mailer'?=>?[ ????????????'class'?=>?'yiiswiftmailerMailer', ????????????//?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'?=>?'yiilogFileTarget', ????????????????????'levels'?=>?['error',?'warning'], ????????????????], ????????????], ????????], ????????'db'?=>?$db, ????????/* ????????'urlManager'?=>?[ ????????????'enablePrettyUrl'?=>?true, ????????????'showScriptName'?=>?false, ????????????'rules'?=>?[ ????????????], ????????], ????????*/ ????], ????'modules'?=>?[ ????????'api'?=>?[ ????????????'class'?=>?'appmodulesapiModule', ????????], ????], ????'params'?=>?$params, ]; if?(YII_ENV_DEV)?{ ????//?configuration?adjustments?for?'dev'?environment ????$config['bootstrap'][]?=?'debug'; ????$config['modules']['debug']?=?[ ????????'class'?=>?'yiidebugModule', ????????//?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'?=>?'yiigiiModule', ????????//?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 appmodulesapicontrollers; use yiiwebController; class SiteController extends Controller { public function actionIndex() { echo "hello world"; } }
4、瀏覽器訪問
最后就是瀏覽器訪問這個actionIndex了,瀏覽器輸入:?http://localhost/basic/web/index.php?r=api/site/index
完成!
更多編程相關內容,請關注php中文網yii框架欄目!
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END