• 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 ThinkUpload();// 实例化上传类
                $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;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 HomeController;
    use ThinkController;
    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 HomeController;
    use ThinkController;
    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 HomeModel;

    use ThinkModel;
    class UserModel extends Model
    {

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

      

      

      

  • 相关阅读:
    python 的class和def 定义执行语句相关
    python _和__ 下划线命名规则
    python2和python3编码问题【encode和decode】
    cpython源码阅读
    eCPRI
    python内存管理/垃圾回收
    Class() vs self.__class__()
    JAVA学习日报 11/24
    JAVA学习日报 11/23
    JAVA学习日报 11/22
  • 原文地址:https://www.cnblogs.com/xiaoxiaomengxiangjia/p/5335157.html
Copyright © 2020-2023  润新知