谁一开始就是大神?

PHP 第96页

PHP

整合整合百度编辑器[2.0]

Neodolphin阅读(77)

因为不了解YII所以整合起来不知道文件放在那里,用什么方式等

问题罗列如下:
1、百度编辑器有很多文件,应该把这些文件放在YII的什么目录呢?如果要拆分放请详细说明。
2、做到编辑器优雅的可复用,而不是死板的代码修改该怎么做?

请详细说明思路,文件位置
每个回答可能都有分,谢谢。

至于你的文件如何放这个需要看的目录架构,没办法给你解答。
EditorAssetEditor还有还有资源文件是在同一个目录的。
editor
– assets
– EditorAsset.php
– Editor.php
大概的目录结构是这样子的。
使用方法如下
编辑器素材路径
1 如果可以有composer安装的就composer安装
2 自己编写asset
views的复用
1 views的复用就是widget,富文本编辑器就是一个典型的widget,在github 可以搜索yii2 ckedit 应该可以找到写好了的widget
2 模板抽象之后都是widget,多谢widget好写模板,但是模板服用在前台可能不太好做,后台用起来比较爽

2.0高级增加分组[2.0]

Bobsuper阅读(71)

2.0高级版默认分 前台 后台 两组 想在加一个分组 mobile 做手机端的 请教一下怎么才能变成分成 前台 后台 手机端 3组

开玩笑的,本来想给你做个例子的,不过想想其实也没啥技术含量,估计通用性不强,如果后面有需要再说。
主要三个步骤:
1,如@巡洋舰老大所述,仿照frontend,backend的样子,新建一个mobile目录。(可以直接拷过来,但是注意修改里面的命名空间)
2,在environments里面仿照dev/frontend或者prod/frontend的样子把配置文件也拷贝一份。(同样注意修改命名空间等)在index.php中增加对mobile的配置。
3,common/config/bootstrap.php仿照前面的例子增加一个mobile的alias。
4,初始化后,把mobile/web配置到webroot下
这个问题真要回答好费时间,悬赏分太少,不想回答怎么破? 😛
参照 frontendbackend 再建一个 mobile 目录。

yii2rbacaddChild出错了[2.0]

Aibysea阅读(68)

$auth = Yii::$app->authManager;
$parent=$auth->createPermission('channel/index');
$parent->description='栏目管理';
$auth->add($parent);
$child=$auth->createPermission('channel/list');
$child->description='查看';
$auth->addChild($parent, $child);

栏目管理这个权限我看数据库是添加进去的,但下面这个子权限就出错。
Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails

因为你的子权限在auth_time表里面还不存在,,所有你加不进去,,约束了

checkbox制template[2.0]

Cindyapple阅读(76)

checkbox(['template'=>"<div class=\"test\">{label}{input}{error}</div>"]);

这种配置文件写到那个位置呢?

类似这样?

请教一个小细节问题[2.0]

momolovely阅读(70)

我用phpstorm
这样七牛会画绿色波浪线,看起来很烦

class QiniuController extends Controller
{

}

这样呢就没有波浪线了,其实感觉还是挺烦囧。

class QiNiuController extends Controller
{

}

IDE的拼写检查而已,可以关掉。如果楼主是强迫症患者,或者想写出可读性高代码,不建议关闭。
然后呢?你想表达什么意思 ? 七牛的英文怎么拼?
是因为你的phpStorm开启词法检查了,咱们的汉语拼音词法检查根本就通不过,建议把词法检查关掉。
phpstorm 是怎么认出qi和niu是两个字的?好神奇

为什么每次获取model对象时,都会出现"SHOW"语句?可以避免么?[2.0]

Newdear阅读(73)

QQ截图20150609215040.png

use app\models\Article;
$test1  = Article::find()->where($map)->asArray()->one();
$test2  = Article::find()->where($map)->one();
$test3  = $test2->title;

其中$test2的过程会比$test1过程多一条“SHOW”查询,$test3多两条。

我是想把关联表的查询封装到一个模型内,没有封装时候调试工具显示只有5条查询,一旦将另一个模型封装在当前模型, 就变成了9条。

虽然看起来耗时很短,想问一下这个”show”语句的影响。

一个尝试性的封装,下面的只是一个例子,方式如下:

//文章表如下所示,还有个内容表,内容在内容表的"Content"字段中
namespace api\models;
use sys\core\base\BaseActiveRecord;

class Article extends BaseActiveRecord {

    private $_content = null; //表单"content",私有属性:文章内容。
/***********************************此处省略x行代码***********************************************/
    //用于获取文章内容
    public function getContent() {
        if ($this->isNewRecord) {
            return null;
        } else {          
            return $this->_content == null ? ArticleContent::findOne($this->content_id)->content : $this->_content;
        }
    }

调用如下所示:

$articleModel= Article::find()->where($sql)->one();
$articleContent=$articleModel->content;//由于对象$articleModel没有content,会自动调用getContent()方法,就和访问自己的属性一样了

上面这种方式获取文章内容会多出:

SHOW CREATE TABLE `frontend_article_content`
SHOW CREATE TABLE `frontend_article`
SHOW FULL COLUMNS FROM `frontend_article_content`
SHOW FULL COLUMNS FROM `frontend_article`

你看我如果用下面的方式获取文章内容就不会出现”show”语句:

$articleModel= Article::find()->where($sql)->asArray()->one();
$content     = ArticleContent::find()->where(['id' => $articleModel['content_id']])->asArray()->one();

但是却少了一些便利性,一定程度上也不能安全的保护数据,毕竟是关联模型。

数据库配置中开启表结构缓存 就没了。
楼上回答的很清楚了,赞一个
楼上回答的很清楚了,赞一个

Yii2执行效率问题[2.0]

CandyJames阅读(69)

最近一直用2.0.4进行开发,在开发的过程中发现一个简单的页面,debuger显示的time居然要1600ms。该页面只是连了数据库读取了一个表的数据并显示出来而已。你们用yii2开发的app也是要加载那么久吗?

QQ图片20150624173005.png

查看log里面耗时最久的就是渲染view了

21	17:23:14.396	trace	yii\base\View::renderFile	Rendering view file: 
22	17:23:15.051	trace	yii\base\View::renderFile	Rendering view file: 

占了 600多ms

最后自己研究出来了,使用Yii2 必须开启opcache,开启和没有开启真心差好远。php5.5自带的 php5.4请自行安装

开发环境和生产环境差别比较大,没办法一起比较,我测试过,开发环境光加载debugger和gii相关内容就要消耗很多时间
我觉得电脑该时刻是不是内存已经用了很多了,我出现这种情况,time会很快上升,但是关掉几个软件之后又正常了。
Database Queries你的是多少次
我的13次,6个asset绑定,达到300ms
第一次打开比较慢,第二次就比较快了,因为第二次有缓存了。
貌似yii的视图加载是硬伤,没有页面缓存的情况下或者第一次加载时都会比较慢,因为yii的视图渲染差不多就是require_once来加载的嵌套

yii2后台验证验证码[2.0]

Jackpony阅读(72)

整合了smarty3,想过这种(当然不行的

function init() {
    parent::init();
    $this->captobj = new CaptchaAction(yii::$app->controller->id, $this);
    $this->_params['captcha_session_code'] = $this->captobj->getVerifyCode();
}

这种可以,不过id随便取似乎不太好。。。

function init() {
    parent::init();
    $this->captobj = new CaptchaAction(1111, $this);
    $this->_params['captcha_session_code'] = $this->captobj->getVerifyCode();
}

试试这样写:

登录

找回密码

注册