《前端到后台thinkPHP整站》课程学习注意事项

来源:1-1 课程简介

singwa

2016-07-26

小伙伴们在学习本课程前需要注意以下几点事项:

一、项目导入本地须知

本地开发的时候如果项目没放入localhost根目录,或者没有配

置虚拟域名访问项目的情况,这时候您的项目会存在地址引入出错的问题,从而导致页面样式以及JS加载不过来等现象(如图一)。有以下3种情况来解决:

http://szimg.mukewang.com/579776cd0001a89f04000264.jpg


图一

1、       将线上项目直接放入localhost根目录下,这时候的访问地址为

localhost/index.php (不推荐这种方式)

2、       本地设置虚拟域名的方式,将虚拟域名绑定到您的项目根目录

apache配置虚拟域名的方法参考:http://blog.csdn.net/tracywxh/article/details/8456512

(强烈推荐这种方式处理)

3、如果不想设置虚拟域名,那么需要修改所有的引入css/JS 地址


 http://szimg.mukewang.com/579777000001ab6904480110.jpg

将上述地址进行修改,可以使用  __PUBLIC__   (public前后都是两个下划线)

 

二、图片上传不了的情况排查须知:

1、       先检查项目根目录下是否有upload目录

http://szimg.mukewang.com/5797771b00018e7201530243.jpg


2、       查看JS文件是否引入成功

主要看看image.js文件必须在jquery.uploadify.js的后面

3、       看看控制台 返回的信息是否有图片地址

4、       上传的图片是不是太多,PHP默认支持2M以下的图片上

传。

5、查看下PHP文件是否携带了bom头(utf8-bom),如果有bom头的 需要去掉!

     utf8-bom  -> utf8

6、打断点调试:

     echo $this->_uploadObj->getError();exit;  看看提示什么内容。

 

三、菜单疑问汇总

1、       当进入后台发现为一个菜单的时候,不用急,课程后面有教大家如何动态的生成左侧菜单的,初始 菜单管理栏目需要大家给一个链接地址并按您定的控制器来决定。

  admin/view/index/nav.html 中修改(<a href="在这个地方添加你菜单的URL地址"> 菜单管理</a>)

http://szimg.mukewang.com/5797772e0001aa0800940145.jpg


四、关于地址多了m=&&的情况汇总,解决方案有2种

1、有小伙伴多次咨询为什么登陆成功后地址多了m=&& ,需要优化下thinkPHP内置U方法,优化代码如下图

代码在ThinkPHP/Common/functions.php中 

5798d934000174d005000114.jpg

5798d9340001600b05000182.jpg


2、第二个方案或者把跳转方案 $this->redirect() ,直接修改为 redirect(),重定向。

如:

redirect('/admin.php?c=login');

五、内置方法I  U 等使用

课程中在接受参数的地方可以使用tp自带的I方法,在url拼接的地方可以使用U方法,小伙伴自行研究,提升自身学习能力。并且建议大家多看看tp手册,里面一些好用的知识点大家可以去品味。


六、其他问题排查

1、       断点调试,在PHP你认为存在问题的地方echo或者print_r 输出下,

看是否经过这里,一步一步排查

2、       要多去看看控制台的信息


 

 http://szimg.mukewang.com/5797775400016e4904350186.jpg

 

七、项目优化点

       关于项目中有几处需要优化的地方,需要小伙伴们关注下:

1、在设置admin.php的地方,之前的代码为:

$_GET['m'] = (!isset($_GET['m']) || !$_GET['m']) ? 'admin' : $_GET['m'];
$_GET['c'] = (!isset($_GET['c']) || !$_GET['c'])  ? 'index' : $_GET['c'];
$_GET['a'] = (!isset($_GET['a']) || !$_GET['a']) ? 'index' : $_GET['a'];

通过上面的部分来控制默认定位到admin模块等,这个地方可以直接使用tp自带的知识点:

define('BIND_MODULE','Admin');//绑定到admin模块


2、在model层实例化的时候,之前的代码为(拿admin model来说):

public function __construct() {
    $this->_db = M('admin');
}
   
public function getAdminByUsername($username='') {
    $res = $this->_db->where('username="'.$username.'"')->find();    
    return $res;
}

如果model的类名前缀和表名的后缀不一样的时候推荐使用上面的(或者配置trueTableName属性然后在结合下面新的方法),如果都一样的情况的可以直接使用更简单的方法(在model层不需要M('admin')了,哈哈就是这么任性),新方案如下:

public function getAdminByUsername($username='') {
    $res = $this->where('username="'.$username.'"')->find();    
    return $res;
}


3、JS中获取表单值内容优化点


之前代码:

    var data = $("#singcms-form").serializeArray();console.log(data);
    
    postData = {};
    $(data).each(function(i){
       postData[this.name] = this.value;
    });

优化后:

var data = $("#singcms-form").serialize();

使用serialize方法更加简单方便!


4、建议把model中的throw_exception方法用E方法替换


5、关于模板文件

  后台模板文件在初始代码有提供, 前端html模板在群共享里面有。


最后祝大家学习愉快!有问题随时沟通!


写回答

23回答

慕粉3612410

2016-07-27

谢谢singwa老师不厌其烦的答疑解惑。这么有责任心的老师在大学里都没有多少了,期待老师下一期的课程。

8
2
singwa
非常感谢!
2016-09-23
共2条回复

Lis丶

2016-07-26

老师辛苦了,什么是再出一个教程啊。哈哈哈

2
2
singwa
新课程快录制完毕
2016-12-22
共2条回复

小感冒

2016-07-26

顶一个, 老师辛苦了

2
1
singwa
应该的。祝学习愉快
2016-07-26
共1条回复

慕运维6755241

2016-11-02

<select class="form-control" name="catid">
 <option value='' >全部分类</option>
 <foreach name="websitemenu" item="sitenav">
   <option value="{$sitenav.menu_id}" <if condition="$catid eq {$sitenav.menu_id}">selected="selected"</if>>{$sitenav.name}</option>
 </foreach>
</select>

这是文章列表页的栏目搜索,按照您的思路,我写这种代码,但是无法实现,请问怎样去修改?

1
0

慕小测

2018-03-29

老师,辛苦了

0
0

慕小测

2018-03-29

谢谢~

0
0

慕粉4333811

2017-06-21

老师,怎么加入课程群啊?

0
0

破晓Daybreak

2017-04-10

感谢老师的耐心回答。 温故而知新。

0
0

SunnyMlon

2017-03-30

QQ 信任登录花钱买了课却提示去绑定。花钱看不了,就这么圈钱开发功能的????图片加载失败图片加载失败图片加载失败图片加载失败

0
0

sandy96

2017-02-23

本地在  该文件夹\Application\Home\View\Index里面找到 index .html  \Application\Home\View\Index


改成这样,我看老师的一开始以为改这样<link rel="stylesheet" type="text/css" href="/__PUBLIC__/css/bootstrap.min.css"  >调试了一下午。。。。。。。。。。。。。。。怪我啰

正确的这个样子,home里面不要加其他CSS了就这两个,我开始还照着老师的加了一个。。。。。。怪我咯

<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/bootstrap.min.css"  >

  <link rel="stylesheet" type="text/css" href="__PUBLIC__/css/home/main.css" >


0
0

林小笨T

2016-12-25

老师有没有前后台模版啊

0
1
singwa
在群共享里面有
2017-01-03
共1条回复

qq_Wa_13960818

2016-11-11

还不如给个静态的文件我自己来配置开发的好~

0
0

furhacker

2016-10-31

//szimg.mukewang.com/5816c0f800011c3d04740267.jpg这是什么问题

0
1
singwa
被重定向多次啦,死循环啦…看看你代码 截图出来看看
2016-10-31
共1条回复

散花瞳

2016-10-07

原谅我,按照步骤更改域名后 直接GG什么都打不开了

0
1
singwa
提示什么错误
2016-10-31
共1条回复

qq_JD梦_04013190

2016-10-06

老师,源代码下载不了吗?

0
0

qq_JD梦_04013190

2016-09-26

老师 ,源代码怎么下载不了?

0
0

慕粉301

2016-09-23

老师怎么加咱们的群啊

0
2
singwa
看课程公告
2016-09-23
共2条回复

BugQueen

2016-09-07

源代码下载的页面不可访问?

0
0

_小_七_

2016-08-23

老师       js里面的u方法应该怎么写? 我写url="{:U('admin/login/check')}" ,$.post(url,)它解析出错了,,,,,怎么办啊??????

0
0

_小_七_

2016-08-23

老师       js里面的u方法应该怎么写? 我写url="{:U('admin/login/check')}" ,$.post(url,)它解析出错了,,,,,怎么办啊??????

0
0

_小_七_

2016-08-22

单入口就index.php应该怎么配置  不要admin.php的     


0
0

Mr慕风

2016-07-28

大赞,期待老师的tp5.0  微博~~!

0
0

90JQK

2016-07-27

谢谢~

0
0

前端到后台ThinkPHP开发整站

用PHP+MySQL+Ajax开完新闻资讯整站,实现“小全栈”的梦想

3360 学习 · 1016 问题

查看课程