谁一开始就是大神?

PHP 第101页

PHP

Mac下xampp环境中yii2的migrate命令报错[2.0]

Aniyak阅读(73)

MacBook-Pro:yii_advanced$ php yii migrate
Yii Migration Tool (based on Yii v2.0.4)

Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] No such file or directory'

in /Applications/XAMPP/xamppfiles/htdocs/yii_advanced/vendor/yiisoft/yii2/db/Connection.php:534

请问出现这种异常是因为啥呢?

看了这么多答案,发现就没有一个靠谱的,告诉你们两个靠谱的方式吧。
修改方法: 找到Yii根目录下的/yii文件打开,
第一行#!/usr/bin/env php 改成 #!/usr/bin/env /Applications/XAMPP/xamppfiles/bin/php
然后重启服务器再试试:)
可能是没有安装php-mysql扩展,也可能是MySQL的服务没有开启。
没有权限?怎么样才能十个字
骚年你装PDO了没?
我看到你用的macbook,那么请你尝试一下,右击你的项目文件夹,然后点显示简介,然后点最下面的锁,打开锁后,点击齿轮,点击应用到子文件夹及子…之类的文字,然后再试一下。
错误原因应该是:php找的对应的mysql.sock路径错了,mysql启动时候会创建一个mysql.sock,这个文件会有一个路径,建议检查下php对应的路径是否正确。
算了,都别猜了,把phpinfo关于mysql configure pdo等主要模块的图截上来,再讨论吧,这么猜,谁能猜得到,又不是华佗
basic/config/db.php
localhost改为127.0.0.1就可以了
我在解决时,用了一整天的时间,一开始以为是mysql,后来以为是php的问题
编译重装几次,最后发现是这个问题,但是解决方法还需要其他步骤。
感谢以下这位的博客:
http://www.iamlintao.com/5026.html
其实就是mac自带php,我们自己安装的PHP反而无法被系统env找出来。
修改方法: 找到Yii根目录下的/yii文件打开,
第一行#!/usr/bin/env php 改成 #!/usr/bin/env /(…你自己安装的php目录…)/bin
同时,解决时,要注意:还不是更改一句这么简单。
需要在终端输入:env
立马可以看到目前的PATH默认值
你可以看见,你自己安装的目录,肯定不在优先,而mac系统自带的php所在的目录反而在优先。
所以,你应当更改path的设置文件。
可以参考: http://www.th7.cn/system/mac/201409/70274.shtml
在我的机器中,是 /etc/bashrc 里边设置的,需要把PATH的第一个遍历目录改成你自己的目录。
还有:
(1)OSX10.11系统增强了权限,sudo也无法修改
先执行 sudo chmod 755 /etc/bashrc
然后 sudo vi /etc/bashrc
(2)修改后:source /etc/bashrc
(3)把终端exit退出,然后重新进去,输入env,你会发现PATH常量已经将你的PHP安装目录变为第一优先。
然后进入yii的主目录,输入./yii migrate
一切OK!!!!

控制器命名大写就报错为啥?[2.0]

Jasonlemon阅读(72)

我看权威指南上看到 控制器命名的例子为
例子:操作 ID create-comment 相当于方法名 actionCreateComment。

但是我写的时候 命名了一个 actionTestForm(){} 控制器就报错404 说找不到页面。
然后改成actionTestform(){} 就可以访问页面了

测试了多次 发现是第二个单词不能大写 这是啥原因?

可以大写, 只是你请求的时候是 index.php?r=controller/action-action 这种形式。然后你的控制器就可以直接写驼峰啦
比如
可以大写的,你的action就是create-comment,驼峰式明明会被-隔开
你是怎么去请求的时候报错呢?

数据库查询需要的字段[2.0]

OldJames阅读(71)

目前我数据表有十多个字段,有 id、name、description、content、create_time、uid、status等 ,用 Category::find()->all(); 的话,会把所有的字段都查询出来, 但我只需要 id、name、uid 这三个字段,用什么办法只查询我要的这三个字段

这样
不知道2.0版本中有没有scope,如果有的话,加上经常性使用这三个字段,建议使用,一劳永逸

下拉分页,出现相同的数据[2.0]

Bravecrab阅读(73)

目前项目需要做一个下拉滑动分页,按照正常的分页思路出现了一个问题;就是在滑动的时候,有新的数据出现,分页显示的数据就会重复出现。大家在做下拉滑动拉取数据的时候是怎么做的? 求大神分享思路。

我的猜想是:你在下拉的过程中有新的数据插入,所以下一页的数据会有上一页部分数据。
传分页参数没传过去吧

用views中设置决使用哪个layout[2.0]

Jimtom阅读(76)

想法如下:
有时候我觉得用views中的参数来决定用哪个layout
这样子该怎么做呢?

frontend/views/page/default.php
$this->layout='main'; 报错

<?php
//include("../layouts/main.php");
?>
报错

该怎么做呢?

原则上,视图应该是先渲染的,所以理论上可以做到在视图中再决定使用什么母版,我想你应该在视图中这样做:
因为在视图里,$this是指视图对象,而非控制器对象,这个是YII2.0的变化之一。
layout是要在controller里面设置的一个变量!
这样可以实现吗?

yii2.0验证码总是错误[2.0]

kenEagle阅读(69)

请问各位大大,我打验证码时,ajax验证可以通过,提交后却终是出现error信息,验证码错误,我查看session的素有内容,发现正确的验证码就始终不变的,难怪总是错,请问这个怎么解决呢?跪求真理
session内容如下

array(6) { ["__flash"]=> array(0) { } ["__captcha/site/captcha"]=> string(7) "bqcggov" ["__captcha/site/captchacount"]=> int(1) ["__returnUrl"]=> string(19) "/nova/user/register" ["__captcha/user/captcha"]=> string(6) "kappfi" ["__captcha/user/captchacount"]=> int(2) }

每次刷新["__flash"]是变化的,["__returnUrl"]始终不变

验证码不变需要改框架源码 vender\yiisoft\yii2\captcha\CaptchaAction.php getVerifyCode($regenerate = true)
验证码总是错误 应该是你的 $captchaAction 属性没有设置正确。
model 的rules方法
[‘captcha’, ‘captcha’, ‘message’=>’验证码错误’, ‘captchaAction’=>’user/captcha’],
模板的地方也有个 captchaAction 选项。
<?php echo Captcha::widget([‘name’=>’captchaimg’,’captchaAction’=>’login/captcha’,’imageOptions’=>[‘id’=>’captchaimg’, ‘title’=>’换一个’, ‘alt’=>’换一个’, ‘style’=>’cursor:pointer;’],’template’=>'{image}’]); ?>
我验证码没用model,直接在控制器里用$caprcha->validate($data[‘captcha’]);怎么验证呢
我验证码没有用model,直接自定义的登录页面就是想用yii2框架里面的验证码功能
我直接在页面里面用 <?php echo Captcha::widget([‘name’=>’captchaimg’,’captchaAction’=>’login/captcha’,’imageOptions’=>[‘id’=>’captchaimg’, ‘title’=>’换一个’, ‘alt’=>’换一个’, ‘style’=>’cursor:pointer;’],’template’=>'{image}’]); ?>
然后在页面里面怎么去把接收到的验证码比对验证呢?
找了一些资料

YiiSRBAC中的bizrule應該如何使用[1.1]

Fionasuper阅读(73)

已經安裝好srbac。現時有一個問題是:如果有一筆記錄是user001建立,那麼我想只能user001才可以更新或者刪除這一筆記錄,請問這個要如何實現,是不是要用bizrule,我試過在bizrule輸入 “return Yii::app()->user->id==$params["record"]->username;” 就顯示 Error:403 ‘你無權運行’。網上查的很久,可是好像很少人有詳細的解答。如果不用bizrule,還有甚麼辦法嗎? 謝謝

其中’t_’代表task,’o_’代表operation。

验证码不显示

loveFox阅读(75)

mac 升级10.10 自带5.5的php 验证码不显示

是因为osx 10.10自带的php5.5的gd扩展不支持png,验证码是png图片,所有就不支持了。
解决方案:可通过brew安装php5.5即可
以下是复制过来的,你也可以自己google

登录

找回密码

注册