谁一开始就是大神?

PHP 第94页

PHP

怎么设置模块的默认控制器[2.0]

Jasonapple阅读(29)

新建了一个modules 程序默认走的Default控制 怎么设置让它默认访问Set 控制器呢
4.jpg

在你的 IndexModules.php加上
这行代码,即可。
见: vendor/yiisoft/yii2/base/Module.php

如果义前端静态资料路径[2.0]

Hazelapple阅读(33)

对于一些js css image这类的一般使用一个单独的文件夹存放,如assets 或者 static 文件夹集中存放,那么如果定义此路径信息,还有如果使用独立的域名的话,又应该如何设置的。我下载的官方实例,没有找到在哪里设置这个的,只找到AppAsset.php文件,也看了官方的文档http://www.yiichina.com/doc/guide/2.0/structure-assets
这里@webroot和@web系统预定义别名,只是没有找到在哪个地方设置的静态资源使用 web/asset/xxxx 目录。

<link href="/assets/cec35f56/css/bootstrap.css" rel="stylesheet">

直接给你源码你明悟吧

怎么在框架中使用usort函数[1.1]

NewLion阅读(31)

public function actionIndex(){
    $student = Student::model()->findAll();
    usort($student,'sortByCreateTime');
}

public function sortByCreateTime($a,$b){
    return $a->create_time>$b->create_time?1:-1;
}

这样写报找不到该方法的错误?有人知道怎么用吗?

usort($student, array($this, 'sortByCreateTime'));
试试
没用过这函数,看了一下手册,不知道是不是第一个参数要传引用。
\usort($student,'sortByCreateTime');
函数名称前把你的命名空间带上

Gii生成CURD[2.0]

lionpony阅读(33)

在使用Gii生成CURD过程中。

  1. View Path的路径填写与实际生成的路径存在差异,eg:View Path填写app\views\test,生成的文件却在views同级目录的web/views下找到了test文件夹。
  2. 生成后,eg: 打算改变Showing 1-20 of 42 items.为自己定义的,请问具体步骤,(已查看类文档,不过还望值得。)
  3. 第二个问题通过文档查看,自己已经解决。(太粗心了,没注意到)

viewpath填写成@app\views\resource就好了
如果你控制器的命名空间是api\controller,那么路径用api\views别用app
@app/views/resource 这样些是可以的 我也遇到了这个问题 也是生成到了web的目录下面了 最后在viewpath路径里加个 然后再把\改成/ 就可以了

Yii的find系列函数的问题

kenCherry阅读(30)

如果不采用类似 $model->find('id=:id', [':id'=>1]),而是直接采用 $model->find('id=1') 的写法可以防止注入攻击吗?

访问地址
代码如下
结果返回
可以看到YII自动进行了SQL防注入,所以是安全的
如果id是在程序里写死的,不是外部传递来的,那么$model->find(‘id=1’)这么写是可以的;
但是id一般都是从外部传递的,所以model->find(‘id=1’)是有风险的

关于HTML的[2.0]

JimKeo阅读(25)

请教个问题Yii2里面怎样通过一个标签的name值获取他的id值 就类似于Yii1里面的getIdByName这个

yii\helpers\BaseHtml里面有一个getInputId方法类似Yii1的resolveNameID
不过,不是很清楚你想问的是什么?
是通过js获取吗?
如果是js试试这个:

关于防sql注入,请教各位朋友。谢谢。[2.0]

foreverStag阅读(32)

AR中有很多方法。

比如

model->findone(['id'=>1]);

请问这个查询,yii是否进行了参数化?

再比如

model->find()->where(['in','id','1,3,6']);

同上,现在自己写点小东西,越写心里越没谱,还希望有经验的帅哥们指导下,谢谢,如果上述方法框架自身没有进行参数化,那么现在趁早就全部改用参数方式来写了。免得最后害死人。

yii\db\Command.php里面在createCommand的时候,会默认用bindValue对参数进行处理,所以你可以放心的用上述写法而不用担心注入问题。
这个你不用担心啊,Yii的AR对sql注入的预防做的挺好的,而且本来就是基于PDO的
Yii自带的AR操作底层是基于pdo进行实现的,sql注入的问题不必担心,但是自己写sql之类的还是要很谨慎,建议用占位。参考博文 yii过滤xss代码,防止sql注入教程

yii2GridView过滤标签audio?[2.0]

lovelyfans阅读(30)

view中

<?= GridView::widget([
        'dataProvider' => $dataProvider,        
        'columns' => [        
            ['attribute'=>'audio', 'format'=>'html', 'value'=>function($model){
                return '<div><audio controls=""><source src="https://www.yiichina.com/question/935'.WEBURL.$model->audio.'" type="audio/mp3"></audio></div>';
            }],  
        ],
    ]); ?>

但最终显示

<td><div></div></td>

audio标签没有了,如果不用GridView直接写audio标签是没问题的。小伙伴们有没有遇到过?

这里的value换成content试试。
看了下DataColumn的实现,如果设置value而非Column的content属性时,DataColumn会默认调用$this->grid->formatter->format对内容进行格式化。
至于为啥过滤掉你的audio标签,可能是你的写法不符合w3c标准?参考w2c School提供的案例:http://www.w3school.com.cn/html5/html5_audio.asp
配置有问题,请参考样例:
http://www.yiichina.com/doc/api/2.0/yii-grid-gridview#$columns-detail

登录

找回密码

注册