ThinkPHP学习笔记

学习tp思想就是在学习的过程中,学习怎么使用手册,重点在于放弃拐杖,以后可以独立思考问题!!!

1,common 目录   放置公共函数

2,pathinfo地址   例如:127.0.0.1/index.php/text/index/index

3.__ROOT__  在PHP和模板目录都可以使用,就是根下面的目录,用于寻找根目录下面的图片,或者css文件....    ---- 具体在php开发手册里面的附录一节中,有常量参考,用到直接查看,只是模板之间的替换,不一定是PHP常量

../Public/  直接到

__SELF__  当前路径

4,C方法,加载配置

5,URL伪静态  'URL_HTML_SUFFIX'=>'html';

6,U方法 

可以做地址跳转

7,$this->redirect('show'); //专门做地址跳转,这句话的意思是跳转到这个类下面的show方法下面

8,跨模块调用方法,使用A('Test')模块

R('Test/index');   调用test下面的index方法

9,mysql_escape_string($str);

 

常见错误:

foreach 循环不显示数据:

解决方法:我遇到过不能显示数据的问题,找了半天,原来是控制器里面的数组变量问题,{$this->assign('param','$arr');
$this->display();)}将数组'$arr'的引号去除即可显示

 

 

一:

index.php

<?php 
	
	header('content-type:text/html;charset=utf8');
	define('BIND_MODULE','Home');
	define('APP_PATH','./Application/');
	require './ThinkPHP/ThinkPHP.php';


 ?>

admin.php

<?php 
	
	header('content-type:text/html;charset=utf8');
	define('BIND_MODULE','Admin');
	define('APP_PATH','./Application/');
	require './ThinkPHP/ThinkPHP.php';


 ?>

访问:
http://localhost/mylove/
http://localhost/mylove/admin.php

 

常用方法:

//判断是否今天登陆过
 <if condition="$vo.login_time gt strtotime(date('Y-m-d'))">今天登陆过</if>
 //判断是否空值或0
 <eq name="vo.end_time" value="0">
   不是0
 <else />
   大于0显示
</eq>
 //时间戳转换
 {$vo.login_time|date="Y-m-d H:i:s",###}
 //U方法直接回首页
 {:U('/index')} 或 {:U('/index')}
 //U方法跨模块
 {:U('admin/xxxx/xxxx')}
 //下拉表单自动选中
 <select id="tid" name='tid'>
   <volist name="list" id="vo"> 
    <option value="{$vo.id}" 
               <eq name="vo.id" value="$_GET['id']">selected</eq>  >
               {$vo.name}</option>
   </volist>
</select>

 

  public function upload(){

    	var_dump($_POST);
    	var_dump($_FILES);

    	
		//如果不为空
	   if(!empty($_FILES)){
            //$userInfo = $user->where("id={$_POST['id']}")->find();
            //@unlink($userInfo['pic']);//删除原图
            $upload = new \Think\Upload();// 实例化上传类
            $upload->maxSize   = 3145728 ;// 设置附件上传大小
            $upload->exts      = array('jpg', 'gif', 'png', 'jpeg');
            $upload->rootPath = './Public';//文件的上传目录是由 rootpath属性和savePath属性控制的

            $upload->savePath  = '/Uploads/User/';
            $info   =   $upload->upload();

            //$_POST['pic'] = $upload->rootPath.$info['pic']['savepath'].$info['pic']['savename'];
        }


    }

  

二,经验总结

1,关于注册登录,继承所有文件common控制器,除了user控制器,因为如果user也继承,那么就会不停的跳转 

  关于登录:
  public function check_login()
    {
        //检查用户是否登录
        if(isset($_SESSION['name'])) { 
        //跳转到首页
        echo 'welcome to index';
        }else{
        //跳转到登录页面
        echo "<script>window.location.href='http://localhost/wap/Home/User/login.html';</script>"; 
        }
    }

2,关于wap端自动下一页,JS控制端写法

<script>
    //ajax无限假暂数据
    var i = 2; //设置当前页数
    var winH = $(window).height(); //页面可视区域高度 

    $(window).scroll(function () { 
        var scrollTop = $(window).scrollTop(); //滚动条滚动高度
        var documentH = $(document).height();  //滚动条高度 
        var windowH = $(window).height(); //窗口高度
        //var windowH = document.body.clientHeight; //窗口高度

        if(scrollTop  >= documentH - windowH){ 
            //$("#nodata").css('display','block');
            $("#nodata").html('正在努力加载!');
            //if(salary == 1)salary='';
            //if(cate == 108)cate='';            
            $.ajax({
                type:'get',
                data:{page_num:i},
                url:'{:U('Home/Index/act')}'
            }).done(function(str) {
            if(str != ''){
                i++;
                $("#content").append(str);
                //$("#nodata").css('display','none');
            }
            else
            {
                $("#nodata").css('display','block');
                $("#nodata").html('报告小主暂无数据!');
            }
            });
        } 
    }); 
</script>

页面端写法;

<div class="container main">
    <div class="list-group" id="content">
        <!--<foreach name="name" item="vo" >-->
        <div class="list-group-item">
            <a href="{:U('Home/Index/detail',array('user_id'=>122,'user_type'=>2,'staff_id'=>$vo['staff_id']))}" style="background:red;width:200px;height:100px;">
            <div class="media">
                <div class="media-left">
                        <img src="{$vo.firm_logo}">       
                </div>
                <div class="media-body bot">
                    <h4>{$vo.positionName}<span>{$vo.updata_time}</span></h4>
                    <p>联系人:<span class="liuba">{$vo.owner_name}</span></p>
                    <p>地址:{$vo.address}<span class="space_o"></span>人数:<span class="space_t">{$vo.per_num}</span></p>
                    <p>面议</p>
                </div>
            </div>
            </a>
        </div>
        <!--</foreach>-->
    </div>
</div>

  

ajax在php端返回数据,要多条时:

<?php
$data = array(
 'result1' => '1',
 'result2' => '2',
 'result3' => '3'
);
echo json_encode($data);
?>

 

三,在前台页面显现

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');
}
}

  

 四,关于MODEL

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {


public function index(){

$User = D('Home/User');
$m = $User->my();
var_dump($m);
//$this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');
//$this->show('<style type="text/css">*{ padding: 0; margin: 0; } </style><h2>my name is liming</h2>');
$this->display();


}
}

在HOME/MODEL下创建UserModel.class.php

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 15-4-27
* Time: 下午1:22
* @author 郑钟良<zzl@ourstu.com>
*/

namespace Home\Model;

use Think\Model;
class UserModel extends Model
{

public function my(){
return '111';
exit();
}
}

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

  

posted @ 2016-03-29 22:37  ready_dream  阅读(233)  评论(0编辑  收藏  举报