本文基于《魏曦教你学 - Yii2.0 视频教程”》视频的第4.9课(4.9 后台功能完善之Post部分 ),在视频中将content:ntext,注释掉了,如图:
本文将content列截取20个字符显示,并在后面加上a 标签,a 标签显示的内容为 ...,鼠标的hover事件使用ajax显示将content截取500字符的提示框(hint),如图:
------------------------------------------------------------正文开始--------------------------------
Yii2.0基于MVC 框架,因此在视图(advanced/backend/views/post/index.php)中处理a 标签,在控制器(advanced/backend/controllers/PostController.php)中响应ajax请求,并且本文用到了hint.css和hint.js两个自定义的文件,因此需要在AppAsset(advanced/backend/assets/AppAsset.php)中加入这两个文件。
一、PostController.php文件中加入 actionHint($id)方法,如图:
源码:
/* 命名为actionHint的原因是由前端提交的url路由决定的。
hint.js 中ajax 的url参数为:url : "index.php?r=post/hint", 路由就是“r=post/hint ”,
其中,斜杠“/”之前的post决定了使用PostController控制器,斜杠后面的是动作hint,决定了在控制器中寻找 actionHint方法。
基本上可以理解为Yii2.0使用字符串分析及拼接函数,自动对接了相应的控制器和动作,post+controller和action+hint,
只不过类名使用了大驼峰命名法,方法使用了小驼峰命名法。
*/
/*
$this->findModel($id)->content 获取了原文。
strip_tags 去掉html标签
mb_substr(...,0,500,'utf-8'); 截取前500字符串,并使用utf-8编码显