ThinkPHP 학습 노트(3) View 레이어 작업

5691 단어

1. 템플릿 변수 설정 및 표시


1. 템플릿 변수 할당
$this->assign('name',$value);
// :
$this->name = $value;
2, 변수 출력
$this->display();
3, 페이지 표시
{$ }
<body>
<p>     :{$username}</p>
<p> :{$userinfo["email"]}</p>
<p> :{$userinfo["regdate"]|date="Y-m-d H:i",###}</p>
</body>

2. Volist 태그 사용 방법


volist 탭은 템플릿에서 데이터 집합이나 다차원 그룹을 순환하는 데 사용됩니다mod:mod에 대한 나머지 $key를 기록합니다:그룹에 대한 key 값을 표시합니다$k:그룹에 대한 순환을 표시하는 횟수offset:5조부터length: 10개의 데이터를 순환합니다
<table>
<volist name="list" id="vo" mod="2" key="k" offset=5 length=10>
<tr<eq name="mod" value="0"> style="background-color:#FFF;"</eq>>
    <td>{$k}{$key} </td>
    <td>{$k}{$key} </td>
</tr>
</volist>
</table>
다차원 그룹 순환 참조:http://www.5idev.com/p-thinkphp_tpl_volist_nested_loop.shtml

3. foreach 용법


foreach 라벨은volist 라벨만큼 많은 기능이 없습니다. 장점은 대상을 두루 출력할 수 있다는 것입니다.volist 라벨은 보통 출력 그룹에 사용됩니다.
<foreach name="list" id="vo">
     :{$vo.username}<br />
 :{$vo.email}<br />
 :{$vo.regdate|date="Y-m-d H:i",###}
<hr />
</foreach>

4. switch 사용법


name 속성 값은 변수 이름입니다. 즉, $기호가 없습니다.value 값이 변수를 사용할 때 $기호가 필요합니다.case의value 속성은 여러 조건의 동시 판단을 지원하고 | 기호를 사용하여 분할할 수 있습니다
<switch name="uid">
<case value="$adminId"> </case>
<case value="gif|png|jpeg"> </case>
<default /> 
</switch>

5. thinkphp에서 자주 사용하는 다른 탭


1. 태그 비교
<  name=" " value=" "> </ >
예:
<eq name="username" value="admin"> </eq>

2. present 태그, notpresent 태그
present 태그는 템플릿 변수에 값이 부여되었는지 판단하는 데 사용됩니다. PHP의 isset () 함수 동작과 같습니다. 형식은 다음과 같습니다.
<present name=" "> </present>
notpresent 라벨,present 라벨의 반의(즉!isset()
3. defined 태그, notdefined 태그
<defined name="SITE_NAME"> :{*SITE_NAME}</defined>

이 예는 다음과 같습니다.
<?php
if(defined("SITE_NAME")){
    echo ' :',constant("SITE_NAME");
}
?>

4, empty 태그, notempty 태그
<empty name="username">username  </empty>

이 예는 다음과 같습니다.
<?php
if(empty($username)){
    echo 'username  ';
}
?>

empty () 함수에 의하면 다음과 같은 상황에서 얻은 결과는 모두 TRUE입니다. (empty 탭을 사용하면 출력이 있습니다.)
//  $x
$x = "";
$x = null;
var $x;
$x = array();
$x = false;
$x = 0;
$x = "0";

5, in 태그, notin 태그
<in name="groupId" value="1,2,3"> </in>

이 예는 다음과 같습니다.
<?php
if(in_array(($groupId), explode(',',"1,2,3"))){
    echo ' ';
}
?>

6、if...else 태그
<if condition="($vo['uid'] eq 1) OR ($vo['username'] eq 'admin') "> 
<elseif condition="$vo['uid'] gt 1" /> 
<else /> 
</if>

condition 속성에는 php 코드를 직접 사용할 수 있습니다. 예를 들어 다음과 같습니다.
<if condition="strtoupper($vo['username']) eq 'ADMIN' "> 
<else /> 
</if>

6. thinkphp의 리디렉션


redirect 메소드 구문은 다음과 같습니다.
$this->redirect(string url, array params, int delay, string msg) 
예:
class IndexAction extends Action{
    public function index(){
        $this->redirect('select', array('status'=>1), 3, ' ~');
    }
}

리디렉션된 URL은 다음과 같습니다.http://www.5idev.com/index.php/Index/select/status/1
//  , 
$this->redirect('select', array('status'=>1));
//  , , 
$this->redirect('select', '', 3);
//  
$this->redirect('Public/login');
//  
$this->redirect('Admin-Public/login');
success()와 error()는 을 통해 3초 간격으로 새로 고침합니다.

n-n초 간격
url - 이 주소로 이동
redirect는 PHP 헤더를 사용하여 방향을 바꿉니다.

7. 시스템 변수 가져오기


방법:
$this-> (" ",[" "],[" "])
예:
$this->_get("name");// htmlspecialchars($_GET["name"])
$this->_get("name","strip_tags");
$this->_get("id","strip_tags",0);
$this->_get('id',false);// ( )
구성 파일에서 기본 필터링 방법을 설정할 수 있습니다.
'DEFAULT_FILTER'=>'htmlspecialchars,strip_tags'

8. 판단 요청 유형


방법
설명
isGet
GET 방식 제출 여부 판단
isPost
POST 방식 제출 여부 판단
isPut
PUT 방식 제출 여부 판단
isDelete
DELETE 방식 제출 여부 판단
isHead
HEAD 커밋 여부 판단

9. 템플릿의 배치

참조:http://doc.thinkphp.cn/manual/layout_template.html
1. 레이아웃 템플릿을 포털로 구성하여 LAYOUT_ 열기ON 매개변수(기본적으로 켜지지 않음), 레이아웃 포털 파일 이름 LAYOUT_ 설정NAME(기본값 layout)
전형적인 레이아웃.html 템플릿 작성법:
{__CONTENT__}

프로젝트에 다른 레이아웃 템플릿이 필요한 경우 LAYOUT_ 동적 구성 가능NAME 매개변수 구현일부 페이지에서 레이아웃 템플릿 기능을 사용할 필요가 없는 경우 템플릿 파일 시작 부분에 {_NOLAYOUT__}문자열2. 현재 출력 템플릿을 입구로 하여 템플릿 페이지에 추가
<layout name="layout" />

좋은 웹페이지 즐겨찾기