thinkphp學習筆記3

來源:互聯網
上載者:User

 1.驗證碼產生
  在ThinkPhp中有個Image.class可直接使用產生驗證碼 而且可選性多
  在ThinkPHP/Lib/ORG/Util/Image.class可直接查看原始碼
  例如我用到的驗證碼
  該方法就是產生一個驗證碼  該方法返回的是二進位的輸出資料流
 public function  verify()
 {
  import("ORG.Util.Image");//該類還有很多靜態方法 產生“品種”較多的驗證碼  這隻是其中一種
   Image::buildImageVerify();
 }
  2.Action
               在接受用戶端提交過來的資料時候 一般要進行一定得資料校正
           在用到$this->error($msg);時  預設它會轉寄到Public下的success.html模版頁面,所以要預先建立此頁面  在頁面模版中可用{$error}顯示錯誤資訊 

  3.條件標籤
               例如 
                <if condition="$reply.sex eq 1 "> //$reply是個對象
                 男
     <elseif condition="$name eq 2" />人妖
               <else/>女
               </if>     
      值是跟著結束之後  個人感覺不怎麼美觀。
      注:condition屬性的條件運算式都不支援 符號  如">"  "<"  "=="  等符號  且屬性裡面基本上使用的是php文法
      官方中還讓我們推薦用Switch替換
      
  4.Switch標籤
              <switch  name="reply.sex">
                  <case value="1">男</case>
                  <case value="0">女</case>
                  <default/>aaaa
                 </switch>
      name可以調用系統函數和系統變數   value也可以用變數  如<case value="$sex">
      
  5.{/* 注釋內容 */ } 或 {// 注釋內容 }   模版注釋
   
  6.匯入檔案
   <html:import type='js' file="Js.Util.Array" />  import標籤 用以匯入網站的公用JS或者CSS  type可以不寫預設是JS
    <html:link href="../Public/Js/Common.js" />
   
    7.迭代標籤
     如:我在項目中用到的volist標籤   迭代一個使用者列表
<volist id="reply" name="replyList">
  <table style="height: 80px">
          <tr>
    <td>使用者:</td><td>{$reply.uname}</td>
    </tr>
          <tr>
    <td>性別</td>
          <td>
           <switch  name="reply.sex">
           <case value="1">男</case>
           <case value="0">女</case>
           <default/>保密
           </switch>
           </td>
         </tr>
        <tr><td>註冊日期</td>
  <td>{$reply.uregtime}</td>
  </tr>
        </table>
</volist>
        
以下例子摘之官方手冊  
注意name和id表示的含義

// 輸出list的第5~15條記錄

<iterate name="list" id="vo" offset="5" length='10'>

{$vo.name}

</iterate>

// 輸出偶數記錄

<iterate name="list" id="vo" mod="2" >

<eq name="mod" value="1">

{$vo.name}

</eq>

</iterate>

// 輸出key

<iterate name="list" id="vo" key="k" >

{$k}.{$vo.name}

</iterate>

iterate還有其它的別名,包括volist,resultset,sublist

子迴圈輸出

<volist name="list" id="vo">

<sublist name="vo['sub']" id="sub">

{$sub.name}

</sublist>

</volist>

很能讓人理解的模版標籤

 9.視圖查詢
  就是多表串連    以自己練手的項目為例
 
  如上reply對象 映射的是表reply 即回帖表   其引用使用者表UserInfo的UID 
  建立一個ViewModel子類
  class ReplyViewModel extends ViewModel {

 protected  $viewFields=array(
 'reply'=>array('content','publishTime','_as'=>'r','_type'=>'left'),
 'userInfo'=>array('uname','head','sex','uregtime','_as'=>'u',
 '_on'=>'r.uid=u.uid'
 )
 );
 //viewFields   兩表串連後所需要的欄位
 /**
 *
 *protected $viewFields = array(
        '表名'=>array('所需欄位','_as'=>'別名定義','_on'=>'篩選條件',
         '_type'=>'指定join類型,支援right,inner,left三種'),

         );
 *
 */
 }
 
 如上  直接在Action 中
                     $replyViewDAO=D('ReplyView'); 就可以進行操作
                       $replyList=$replyViewDAO->select();//獲得列表
                     dump($replyViewDAO->getLastSql());//看看SQL語句就明了了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.