谁一开始就是大神?

PHP 第29页

PHP

DetailView里显示html内容被转义,数据是富文编辑器添加的内容,被转义的内容怎么取消[2.0]

Marklove阅读(56)

view层显示的代码

 <?= DetailView::widget([
                'model' => $model,
                'attributes' => [
                    'news_id',
                    [
                        'label' => '栏目名',
                        'value' => $model->findCateName()->catname
                    ],
                    'title',
                    'description',
                    'content:ntext',
                    'inputtime:datetime',
                    [
                        'label' => '状态',
                        'value' => $model->status == 1 ? '启用' : '禁用'
                    ]
                ],
            ]) ?>

QQ截图20170413152153.png
上图为显示的内容,我不想让它转义,怎么处理??

内容格式化一下
‘format’=>’html’,
你存的内容不对吧?看看数据库中存的内容,是不是转成其他格式了,使用ntext是可以正常显示html的。

yii2gridviewtr中的data-key值设置之后不生效,[2.0]

Boblovely阅读(55)

yii2 gridview tr中的data-key值设置之后不生效,如果我设置’data-value’的时候值就能出来,但是使用’data-key’的时候就变成了如图所示这个样子QQ图片20170417153400.png

QQ图片20170417162958.png

参照yii\grid\GridView的这两个方法
QQ截图20170417163141.jpg
你按照上图的设置配置一下试试。
QQ截图20170417165326.jpg
给我瞅瞅你这块的代码是怎么设置的 gridview
你好,根据源码来看,data-key是被源码覆盖的,这个值源码会自动赋值为每条模型的主键值,所以你可以把这个属性换成别的就可以了,详情请看类 yii\grid\GridView源码的第514行
源码里可见 data-key 已经被Yii 使用了,就好像 case关键词被PHP使用了一样,如果你建了一个 Case AR class 一样无法用,所以尽量避开吧。 楼上几位都很厉害,直接就翻源码了,哈哈。

视图中的GridView::widget()怎么调试?[2.0]

NiceLion阅读(58)

170413.jpg

我想看看GridView::widget()都获取到了什么数据,比如SQL查询后都获取的都是哪些字段的值。但到了前端已经是个HTML页面了,这个应该怎么调试呢?

还是去看源代码吧,在源代码里面断句。
调试dataProvider就是了
数据是由dataProvider提供的,而归根到底是dataProvider的query属性作为一个查询对象查询提供的,也就是一个ActiveQuery对象,这个对象当初你select了什么,就会查出什么,没有定义查出全部,跟你使用ActiveRecord查询东西是一样的
打印出所有变量呗

缓存如何实现跨模块读取缓存?[2.0]

Neoapple阅读(55)

需求是frontend访问能直接读取在backend下设置的缓存
比如说我在backend下Yii::$app->cache->set(‘key’,’test’),
然后在frontend下Yii::$app->cache->get(‘key’)读取
现在在相同模块下读取就没事,但是如何实现跨模块访问呢?谢谢!

第一:你要确保,backend下的cache,和frontend下的cache是访问同一个cache
第二:你要确保当你夸模块读取的时候的,这个数据已经存在你的cache里面了
第三,你这个叫做跨app
直接使用redis也是可以的,你现在的方式是缓存的文件。

mysqlIN()方法里面的参数到底如何理解?[2.0]

Aibyhope阅读(53)

select * from td_xm where xmbh in (select xmbhs from td_xm where id = 56)和
select * from td_xm where xmbh in (20160024,20170003)
查询的结果不一样,第一个没数据,第二个有两条数据,这是什么原因造成的?其中select xmbhs from td_xm where id = 56值为20160024,20170003,就是id为56的xmbhs字段的值就是:20160024,20170003,以逗号隔开的

实在不明白in()到底这个时候如何理解??

in()参数是数组,(select xmbhs from td_xm where id = 56)查出来的是个字符串
好好学习下数据库
in(这里是一个一维数组),前提是php环境,你那样会变成一个字符创'20160024,20170003',并非是你想的'20160024','20170003'
xmbhs xmbh
全场最佳哈哈,in里面就是数组,查询出来的结果没有分隔当成一个值了,

把vendor里面的一个扩展提到common的extensions下该怎么提[2.0]

KimLion阅读(53)

把 vendor里面的一个扩展提到 common 文件下的extensions 下 该怎么提,这样便于修改一些功能。因为vendor里面的代码不能随便改。

继承vendor里面的类即可。
两个步骤:
1。将文件夹完整拷贝到common下面
2。这一步比较关键,涉及到了yii2的类自动加载的机制,需要符合下面的规范
每个类都必须置于命名空间之下 (比如 foo\bar\MyClass)。
每个类都必须保存为单独文件,且其完整路径能用以下算法取得:
// $className 是一个开头包含反斜杠的完整类名(译注:请自行谷歌:fully qualified class name)
$classFile = Yii::getAlias(‘@’ . str_replace(‘\’, ‘/’, $className) . ‘.php’);

多个user验证该怎么设置[2.0]

Neosea阅读(51)

    'user' => [
        'identityClass' => 'common\models\User',
        'loginUrl' => '/user/index/index',
    ],
    'usert' => [
        'identityClass' => 'common\models\UserTwo',
        'loginUrl' => '/usert/index/index',
    ],

报了错 The configuration for the “usert” component must contain a “class” element.
这样设置该怎么办?

‘user’ => [
     ’class’ => ‘yii\web\User’,
‘user’ => [
],
‘usert’ => [
     ’class’ => ‘yii\web\User’,
],
啊啊啊,你老婆是不是叫刘瑞啊!

有joinWith()的SQL查询怎么写select()语句?[2.0]

ecyKeo阅读(53)

我的原始语句是:

$query = ArticlesSearhch::find()->where(['isDeleted'=>0])->joinWith(['authors']);

因为article中的content字段内容很多,所以我现在不想全查出来,只查出title、authorId、lastEdited等几个字段,这个select()语句该怎么写?

ArticlesSearhch中的authors

    public function getAuthors()
    {
        return $this->hasOne(TbAuthors::className(), ['id' => 'authorId'])
            ->asArray();
    }

我改写成下面这样,报错:

$query = ArticlesSearhch::find()->select('articles.id','articles.title','articles.authorId','articles.lastEdited','articles.format')->where(['articles.isDeleted'=>0])->from(['articles'=>'articles'])->joinWith(['authors']);

报错信息:

Database Exception – yii\db\Exception

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'COUNT(*) FROM `articles` `articles` LEFT JOIN `authors` ON `articles`.`authorId`' at line 1
The SQL being executed was: SELECT articles.title COUNT(*) FROM `articles` `articles` LEFT JOIN `authors` ON `articles`.`authorId` = `authors`.`id` WHERE `articles`.`isDeleted`=0

求大神帮忙!谢谢!

搞定,格式写错了,改成这样就可以了:

$query = ArticlesSearhch::find()->select(['articles.id','articles.title','articles.authorId','articles.lastEdited','articles.format'])->where(['articles.isDeleted'=>0])->from(['articles'=>'articles'])->joinWith(['authors']);

self::find()
这样试试

登录

找回密码

注册