Yiijava三大框架学习顺序控制器动作问题,怎么解决

2.0版本中如何取得当前的控制器和方法 - 问答 - Yii Framework 中文网
2.0版本中如何取得当前的控制器和方法
22040次浏览
悬赏 0 金钱
在控制器中和在模板中得到当前的controller和action,应该怎么写
网上的写法全是1.x版的,放在2.0版本中不正确
在 控制器 里面
1 $controllerID = Yii::$app-&controller-&
2 $actionID = Yii::$app-&controller-&action-&
在 视图 里面
1$controllerID = Yii::$app-&controller-&
2$actionID = Yii::$app-&controller-&action-&
详见: http://blog.sina.com.cn/s/blog_88a65c1b0101j6aa.html
共 3 条回复为什么我这样写不对呢,要在Yii前加\才对:\Yii::$app-&controller-&id
你这样写错了
应该是这样写的
Yii::app ()-&controller-&
Yii::app ()-&controller-&action-&
你这是1版本的写法
在 控制器 里面
var_dump($this-&id, $this-&action-&id);
在 视图 里面
var_dump($this-&context-&id, $this-&context-&action-&id);
Yii::$app-&controller-&id
$this-&context-&id
这两种方法在视图里获取控制器名称为什么都带了模块名:admin/tag
我的模块是 admin,控制器是 tag
请问如何正确获取到 tag
您需要登录后才可以回答。 |在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
他和比如actionIndex等这些方法有好什么区别呢?我在Yii的视频教程上面看见的是用来做验证码
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
比如通过一个文件来定义action,而不是在controller中定义
function actions(){
return array(
'edit'=&'application.controllers.post.UpdateAction',
官方的例子:SiteController 中
public function actions()
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
'captcha'=&array(
'class'=&'CCaptchaAction',
'backColor'=&0xFFFFFF,
// page action renders "static" pages stored under 'protected/views/site/pages'
// They can be accessed via: index.php?r=site/page&view=FileName
'page'=&array(
'class'=&'CViewAction',
'search'=&array(
'class'=&'ext.esearch.SearchAction',
'model'=&'Post',
'attributes'=&array('title', 'tags', 'content'),
就可以直接通过 xxx?r=site/captcha 访问到验证码了!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
公用操作,AController和BController都有一个edit方法,就可以放到actions
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
顾名思义,action 毫无疑问就是用来描述控制器的动作,一般都有 actionIndex ,即默认动作。
class PageController extends Controller
public function actionIndex()
echo 'default action';
当用户请求时,便会触发默认的动作,输出 default action。
当然你也可以定义特定的 action,例如:
class PageController extends Controller
public function actionIndex()
echo 'default action';
public function actionSelf()
echo 'new action';
此时,当用户请求 self 动作时,就会触发 输出 new action。
当然你会发现还有 CAction 的类,这是使用 action 的另外一种方法:
class SelfAction extends CAction
public function run()
echo 'new action';
class PageController extends Controller
public function actions()
return array(
'self' =& 'application.controllers.actions.SelfAction',
建议题主在正式开发前,先对 YII 有个大致的了解,可以阅读这个文档:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
当你要做一个单页, 比如“关于我们”、“联系我们”,可以全部写在 actions 里。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
用来复用action用的
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。yii&&关于如何改变默认访问的控制器(site)
在配置文件main.php中,在第一个数组里面,添加
'defaultController'=&'Index/index',即可,或者'defaultController'=&'Index',也行,尽量控制器首字母大写和控制器名字一样,(在L环境中区分大小写,或者,在L环境的配置文件中,修改配置使其不区分也可以)。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。输入关键字进行搜索
如何在PHP框架的控制器方法中调用workerman的异步任务,比如TP5、Laravel、Yii,目前直接这样,发现并没有发送数据
发现问题了,是自己没有调用connect(),但是调用以后,直接报500了,请问什么问题?
workerman的AysncTcpConnection只能在workerman环境用。
TP5、Laravel、Yii等类似这样连接发送数据
$task_connection&=&stream_socket_client('tcp://x.x.x.x:1255');
fwrite($task_connection,&json_encode($data));
其中x.x.x.x是真实ip或者域名,不能用0.0.0.0
要回复问题请先或
这还不好说哦~
关注: 2 人
Powered byYii: 获取当前控制器和动作名
我的图书馆
Yii: 获取当前控制器和动作名
1. 获取控制器名在控制器中获取控制器名:$name = $this-&getId(); &在视图中获取控制器名:$name = Yii::app()-&controller-& &2. 获取动作名在控制器beforeAction()回调函数中获取动作名:$name = $action-& &在其他地方获取动作名:$name = $this-&getAction()-&getId(); &
[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 spring框架 的文章

 

随机推荐