Thinkphp学习笔记

大二上学期开始学习网站建设的知识,参加了校内的一个社团。
刚开始学习的是HTML/CSS,关注重构方面,后期是PHP,后台方面。11月左右开始组队参加内部比赛,1个月后进行展示。
因为某种不(mei)可(you)抗(ren)拒(yao)的原因,最后和一个大一的设计师组队。我负责前端和后台。作品最后拿了一等奖,我拿了最佳研发。
接下来几天慢慢把当时做这个作品的各种坑写在这里。噢,最后的作品名是Gee!Jee!,目标是做一个众筹网站。

后台准备工作

交接

前端重构完成后,和框架结合时需要做一些改动:

  1. 把html文件放入view文件夹,把css/js/images/文件夹及其内容放进根目录下的PUBLIC文件夹。
  2. 修改html文件内容:
    1. 修改css/js/images路径:添加PUBLIC/
    2. 修改各个超链接的路径:URL/控制器中操作名(一般为链接网页名)[确保都是放在一个模块下,否则URL/模块名/操作名]
      之后就是开始写后台啦:

写控制器/模型模块

  1. 用户注册登陆模块
  2. 作品上传模块
  3. 主页作品展示模块
  4. 作品详情模块
  5. 众筹模块
  6. 上传头像模块
  7. 分页模块
  8. 作者展示模块

分析

上面这些是当时敲代码时写的,现在看来发现当时做的好乱。。接下来慢慢看模块当时的写法吧。

1.用户注册登陆模块

  • 注册模块:
    • 多用var_dump()查看错误信息;
    • 非法数据对象:是否用了post,表单是否有name属性,是否有错,自动验证是否有错
    • 页面跳转:查看url是否有错,$this->success(‘登陆成功!’,’index2’,2),直接填写方法名
    • 查询出错:查看语法,使用数组传递条件:
      1
      2
      $condition['email'] = $email;
      $result = $User->where($condition)->find();

当使用select()方法时会返回多个数据集。使用:$result[0][‘id’];

  • 登陆模块:
    • 用户头像:使用模型的函数记得用D方法,正确处理图像的路径。
    • 检测是否登陆:session。根据是否登陆改变的html内容在控制器中赋值,Thinkphp会自动转义字符。
    • 默认用户头像:在数据表中设置好默认的路径
    • 全局session:封装成函数,每次都调用。应该有更好的办法。

2. 作品上传模块

  • $info['file1']['savepath']单独取出存储到数据库时使用该语法;
  • 不知道如何调用数组时var_dump来查看数组组成。
  • 文件上传模块可以和数据上传模块一起使用,测试过程良好~一路顺畅。
分享到