谁一开始就是大神?

PHP 第94页

PHP

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

Hazelapple阅读(80)

对于一些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">

直接给你源码你明悟吧

Yii视图文件点击出错[1.1]

CGJames阅读(75)

问题描述 我在文章详情页添加上一页 下一页代码

public function actionIndex($aid)
{
    $artilce = Article::model()->findByPk($aid);
    // var_dump($artilce);die;
    // 上一篇 下一篇
    // var_dump($aid);die;
    $up = Article::model()->find(array('condition'=>'aid <:AID','params'=>array(':AID' => $aid),'order'=>'atime desc',"offset"=>0,'limit'=>1));

    $down = Article::model()->find(array('condition'=>'aid >:AID','params'=>array(':AID' => $aid),'order'=>'atime desc',"offset"=>0,'limit'=>1));
    // var_dump($up);die;
    $this->render('index',array('artilce'=>$artilce,'up'=>$up,'down'=>$down));
}

然后我在视图输出

<div class="up-down">
上一篇:<a href="<?php echo Yii::app()->createUrl('article/index',array('aid'=>$up->aid)) ?>"><?php echo $up->title ?></a><br>
下一篇:<a href="<?php echo Yii::app()->createUrl('article/index',array('aid'=>$down->aid)) ?>"><?php echo $down->title ?></a>
</div>

然后我鼠标移动到链接 源码是

<div class="up-down">
上一篇:<a href="/cms/cms/index.php?r=article/index&aid=1">测试文章</a><br>
下一篇:<a href="/cms/cms/index.php?r=article/index&aid=4">1234456625</a>
</div>

点击的时候提示

CHttpException

The system is unable to find the requested action "error". (C:\wamp\www\cms\framework\web\CController.php:483)

是什么原因造成的,请指教。谢谢

骚年,你生成这玩意儿两层<a href="https://www.yiichina.com/cms/cms/index.php?r=article/index&aid=1">测试文章</a><br>cms是正确的么。出现这种问题,你先拿你当前url和这个进行对比下,排错。先确定url是否正确。
还有,在页面内的这种输出,比较建议使用yii/helpers/Ulr;的Url::to()方法,记得to方法里面的内容需要加[]否则会生成局部链接。
具体修改的话我得看下你的代码测试下。
如果你使用了urlManger,那么你看看你这个方法是否做了设置,没有设置那就不用废话了设置一下,如果设置了,那就继续等待大神来解答
三楼,看你的了
有异常没捕获到,main.php里面配的errorHandler对应的action没有;debug模式没有具体错误吗,看看日志也行

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

NewLion阅读(78)

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阅读(75)

在使用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阅读(72)

如果不采用类似 $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阅读(69)

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

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

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

foreverStag阅读(74)

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阅读(73)

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

登录

找回密码

注册