Yii框架开发问题总结

来源:互联网 发布:服务器状态监控软件 编辑:程序博客网 时间:2024/05/29 03:15
1.POST无法获取数据遇到的问题
首先是由于Model里没有重写rules方法 这样就导致load方法无法获取到其中的参数
但是可以同过$_POST打印出来其中的数据。以下是大神的讲解
要一起用,load()只是加载数据,validate()才是验证。
更新和添加都用save(),yii通过$model->isNewRecord 来判断是不是一条新纪录,然后调用insert()或者update()
load()setAttributes()方法都属于批量赋值,yii为了保护数据的安全性,是禁止批量赋值的,但是当数据符合rule规则的时候就可以批量赋值了,所以没写rules就不能用load()。就算某个字段不需要什么规则,用户输入什么都可以,那么要把这个字段的规则设置safe,一般gii生成的model最后一行都是safe的。
你可以不用validate(),因为save方法会先调用validate()再执行insert()或者update()(看源码就知道)。

[PHP]failed to open stream: Permission denied 报错修改文件夹的权限为777
chmod 777 目录或文件名
mkdir -m 777 文件名

  1. An internal server error occurred. 或者为PHP 500 错误  或者是 Internel server error
解决方式很简单  可能是由于web目录下的index.php没有配置完成
defined('YII_DEBUG'or define('YII_DEBUG'true);
defined('YII_ENV'or define('YII_ENV''dev');

4.重启服务器命令 Mac下
sudo pkill php-fpm
      sudo php-fpm
sudo nginx -s reload
sudo nginx -c /usr/local/etc/nginx/nginx.conf

  1. Linux MacOSX 服务器下:nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13:Permission denied)
2014/08/04 20:35:45 [emerg] 17114#0: open() "/usr/local/nginx/logs/access.log" failed (13: Permission denied)
原因:当前用户对该位置没有写入权限
解决办法:
1.使用命令:sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 以root权限启动
2.使用命令:sudo chmod -R a+rw /usr/local/nginx 给所有用户赋权限(个人学习,不考虑安全问题)
                    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  启动Nginx

注:以非root权限启动时,会出现 nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied) 错误
原因:Linux只有root用户可以使用1024一下的端口
解决办法:1.已root权限启动
  2.将 /usr/local/nginx/conf/nginx.conf 文件中的80端口改为1024以上
server {
# listen 80
   listen 8080
……
}


5.从数据库导出数据
通过PHP MyAdmin导出数据时cgi接口不能处理大量数据接口
执行方式: 
sql语句 into outfield ‘/usr/...'绝对路径
远程拷贝 scp root@118.194.63.196:/mounthData/flow.csv /Users/xin/Desktop/flow.csv
scp命令 远程文件地址 +本地文件地址
0 0