谁一开始就是大神?

PHP 第30页

PHP

菜鸟YII2.0URL美化问题[2.0]

Bobbubble阅读(120)

大家好我是一个新手 yii2.0 url 怎么美化成 user/index/2/2.html 这样呢 url 静态写好了 就是不知道带方法名和 带多个参数的url美化

看看这个有没有帮助:http://www.yiichina.com/video/36
我只告诉长的帅的
还可以这样写

yii2的NavBar如何写入图片也就是logo[2.0]

lovedolphin阅读(108)

现在 NavBar里写入图片logo

yiichina里是

<a class="navbar-brand" href="/"><img src="/images/logo.png" alt="Yii Framework 中文社区"></a>

可如何用呢?

怎么去掉分页提示总计*条数据。。[2.0]

fationpony阅读(107)

snipaste_20170419_170238.png

我使用了分页,指定20,数据达到20就显示分页,否则不显示上面的提示…谢谢大家

在你自定义的地方重新写一个GridView继承yii\grid\GridView这个原类,然后重写renderSummary方法
然后渲染grid的时候用你现在的这个GridView类就行

Yii::$app->user->identity不能获取用户数据[2.0]

fationLion阅读(120)

Yii::$app->user->identity->username获取数据,显示为空,var_dump(ii::$app->user->identity)

common\models\register\LoginUser Object
(

[username] => 
[password] => 
[rememberMe] => 1
[_user:common\models\register\LoginUser:private] => 
[_attributes:yii\db\BaseActiveRecord:private] => Array
    (
        [id] => 1
        [username] => xiaoqiang
        [password] => 
        [phone] => 18094570201
        [ip] => 
        [status] => 10
        [password_hash] => $2y$13$MPXhbqGADeuHLI6L.ld0vOy6KNoP0MDMty/8qUZf5kY.oh0X0Rqk2
        [auth_key] => 
        [created] => 0000-00-00 00:00:00
    )

[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
    (
        [id] => 1
        [username] => xiaoqiang
        [password] => 
        [phone] => 18094570201
        [ip] => 
        [status] => 10
        [password_hash] => $2y$13$MPXhbqGADeuHLI6L.ld0vOy6KNoP0MDMty/8qUZf5kY.oh0X0Rqk2
        [auth_key] => 
        [created] => 0000-00-00 00:00:00
    )

[_related:yii\db\BaseActiveRecord:private] => Array
    (
    )

[_errors:yii\base\Model:private] => 
[_validators:yii\base\Model:private] => 
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
    (
    )

[_behaviors:yii\base\Component:private] => Array
    (
    )

)

吧你这个类common\models\register\LoginUser里面定义的$username,这个属性去掉,自定义的属性和数据库里面的字段重复了
你确定你处于登录状态?

gridview是否可以自适应页面?[2.0]

Bellayak阅读(128)

一个页面上放了一个GridView,其中一列比较长,我想达到这个功能:如果这个GridView一个页面显示不下(即要拖滚动条才能看到全部的页面),那么这较长的一列可以自动收缩(比如限定最长10个字符,然后后面加3个点),使GridView刚好在一个页面全部显示。

我想你需要的是实现换行 断词 断句
看看这个demo吧
http://yiilib.com/topic/716/Yii2 GridView中实现断行断字
自己自定义style写css样式
默认的不是?
这个关gridview啥事。
这是前端样式在管理。
你不试下,咋就知道不行的呢?只是给你提个思路,具体怎么实现自己去尝试吧

用raphael做思维导图,chrome控制台提示警告[2.0]

HaHcrab阅读(120)

用seajs和raphael做的思维导图,思维导图要做个局部刷新,做了一个div,局部刷新时数据是可以过来的,但是画布内容显示不出来,但是点一下窗口最大化按钮数据就出来了,
chrome控制台警告:Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help, check http://xhr.spec.whatwg.org/.这个东西,
前端小白,不是很会弄,跪求大神指点。

这个报错的意思是:使用同步的AJAX请求不是推荐做法,只是一个警告,当AJAX的sync设置成false,就会出这个提示。并不是你出错的关键

如何查询当前记录的上一条和下一条记录(表中已有排序字段)?[2.0]

dmdolphin阅读(125)

表中增加了排序字段“sort_by”,排序方式为先根据“sort_by”倒序排列,然后根据“id”倒序排列。在这种情况下如何查询当前记录的上一条记录和下一条记录?

说个思路:
1、获取记录的绝对顺序号(也就是按每页1条记录算出来的值):在列表页中将每条记录按照指定的排序方式所处的绝对顺序号(n)保存下来,在详情页的链接中将此顺序号传过去。
2、在详情页中,根据顺序号,按指定的排序方式查找第n-1和n+1条记录,作为上一条,下一条,显示在当前页,同样,在上一条和下一条的链接上将n-1和n+1要传过去,继续使用。
我优先能想到的就是limit 0, 1 这样,通过增加offset 来取下一条
如果要深入一些,我觉得在 数据库设计上可以下些功夫
也有一些笨办法,一次取一批出来,反正是数组,下标从0 开始依次递增。
sort_by 值如果存在就用它 如果不存在就用ID
查询 sort_by大于当前sort_by 和sort_by 小于当前sort_by 的排序还是按:先根据“sort_by”倒序排列,然后根据“id”倒序排列这样试试
我只能告诉你两句sql语句
参考我的的这条 http://www.yiichina.com/tutorial/1142

union联合查询的结果使用搜索,不能准确查询[2.0]

Jacktom阅读(126)

$query = AccountsInfo0::find();

     $unionQuery = AccountsInfo1::find();
        $query->union=[
        [
            'query'=>$unionQuery, 
            'all' =>$all
        ]
        ];

使用union查询子句查询,使用搜索的时候不能准确查询,会出现重复查询的结果1.png

2.png

3.png

389272时表1的内容,389349是表2的,

$unionQuery也需要添加where()条件

ajax配合csrf安全性的疑问[2.0]

WendyJames阅读(114)

先上代码

ww.png

qq.png

点击页面上的一个按钮会调用ajax访问控制器,我加了个csrf验证判断,如果页面不刷新csrf不会发生变化,那始终验证都是yes。要是使用者用这个固定csrf和不同的id请求这个接口,就会修改其它的记录。我应该怎么防止这种情况呢?

你的担心完全是多余的。
CSRF 是其他站点利用你使用的 A 浏览器登录的 B 网站所保存的 去伪造请求发送给 B 网站。
很显然,其他网站基本不可能知道你的 csrfToken。所以在检测了csrf的请求中只会得到 400。本身就存在于你网站之下的 JS 却可以毫无顾忌的获得这个 token ,这也正是你希望的。
这类似于你给了用户呈现的网页中的背景是一副湛蓝的天空,用户自己可以用 F12 换成大海。但这个用户无法把其他人的背景也换成大海。
除非这个用户是你。
把csrf放到后台吧
1 其实你开启了控制器的enableCsrfValidation=true之后,控制器会帮你验证csrf的,你不用自己验证
2 如果想重新生成,调用一下Yii::$app->request->getCsrfToken(true)就行,记得把新生成这个csrf放到你的页面meta[name=csrf-token]的content里,便于继续调用
3 csrf的起到安全问题其实就是有这个验证(防止跨站攻击(跨站攻击,没这个值)),而没必要再变换这个值,所以没必要变换这个值

登录

找回密码

注册