开发时遇到的一百万种坑

或开发,或学习时,总会遇到各种各样的问题,有的是小坑,自己引起的,有的是大坑,可能是框架或是软件的问题,让你寻寻觅觅也找不到问题所在,纠结几个小时甚至几天结果发现“啊!原来是这里的问题”。
因为是记录用,所以大部分不会过多地讲原理性的问题,只会大概地说一下解决方法。

关于软件和系统:

  • 使用nginx -tc 配置文件检查nginx的配置文件,一直报not in http层级的错误,发现是因为检查是incluce的conf文件的问题,应该检查主配置文件,解决报错,成功运行。
  • 纯净版os(最小化安装的linux如centos)如果某些服务无法正常运行,试着使用getenforce查看SDLinux是否打开,可使用setenforce 0关闭。

关于代码:

  • 一直报namespace必须是首行的问题,后面发现是文件utf变成了utf-bom,二级制打开,发现utf-bom会在文件首部插入8位的bom头,使用notepad++更改编码或重新建立php文件,然后复制代码解决。

关于框架

  • yii的分页类Pagination好像会自动接收get传过来的key为page的参数,可通过设置
    pageParam的值来设置key名

    $pages = new Pagination([

    'totalCount' => $totalCount, 
    'pageParam' => 'p', 
    

    ]);

  • 某次操作后,打开后台url的一直报Unable to resolve the request错误,鼓捣良久,定位到应该是modules模块的解析出问题了,最后发现在入口文件里把环境设置为prod了,而在config文件里modules只有在dev环境再才被定义,改成dev,成功访问。

  • 使用attributes直接对model赋值然后save,如果通不过验证的话,会save不成功,应该说,根本不会生成SQL去执行,而且不会报错啊啊啊,try…catch还抓不出来啊有木有,需要注意,可以判断save是否成功,或者validate后再save(flase);
  • 使用save去update时,如果取出来的AR没有带主键ID的话,save不会成功,而且不会报错,需注意。