>  기사  >  백엔드 개발  >  Thinkphp의 volist 태그 중첩 루프 사용

Thinkphp의 volist 태그 중첩 루프 사용

不言
不言원래의
2018-06-06 16:23:561992검색

이 글에서는 주로 ThinkPHP에서 volist 태그 중첩 루프를 구현하는 방법을 소개하고 있는데, 필요하신 분들은 참고하시면 됩니다.

이 글에서는 ThinkPHP에서 volist 태그 중첩 루프의 사용법을 다음과 같이 자세히 설명합니다. Thinkphp 개발 매뉴얼에는 3da5ee660f26a047cce0b9503e43e613 태그 중첩에 대한 설명이 있습니다. 다음과 같습니다:

태그 중첩:

템플릿 엔진은 태그의 다단계 중첩 기능을 지원하며 태그 라이브러리의 태그가 중첩될 수 있는지 여부를 지정할 수 있습니다.

시스템에 내장된 태그 중 volist(및 별칭 반복), switch, if, elseif, else, foreach, Compare(모든 비교 태그 포함), (not)present, (not)empty, (not) 정의된 태그와 기타 태그는 모두 중첩하여 사용할 수 있습니다. 예:

<volist name="list" id="vo">
<volist name="vo[&#39;sub&#39;]" id="sub">
{$sub.name}
</volist>
</volist>

위의 태그는 이중 루프를 출력하는 데 사용할 수 있습니다.

기본 중첩 수준은 3레벨이므로 중첩 수준은 3레벨을 초과할 수 없습니다. 더 많은 수준이 필요한 경우 TAG_NESTED_LEVEL 구성 매개변수를 지정할 수 있습니다.

그러나 Action에서 정확히 어떻게 "list"에 값을 할당해야 할까요? 설명에서 볼 수 있듯이 list는 2차원 배열이어야 합니다. 아래는 테스트 후 사용할 수 있는 테스트 코드입니다.

$Baojia=new Model(&#39;baojia&#39;);
$Class=new Model(&#39;class&#39;);
$parent=$Class->select();   
foreach($parent as $n=> $val){
$parent[$n][&#39;voo&#39;]=$Baojia->where(&#39;belongto=\&#39;&#39;.$val[&#39;name&#39;].&#39;\&#39;&#39;)->select();
}
$this->assign(&#39;list&#39;,$parent);
<volist name="list" id="vo">
    {$vo.name}<BR>
<volist name="vo[&#39;voo&#39;]" id="sub">
 {$sub.name}
</volist><BR>
</volist>
데이터베이스에는 두 개의 테이블이 정의되어 있는데, 하나는 견적 테이블이고 다른 하나는 분류 테이블입니다. 각 분류 아래에는 각 모델의 견적이 트리 메뉴처럼 표시됩니다.

코드의 주요 기능은 다음과 같습니다.

1. 먼저 모델을 만듭니다.

$Baojia=new Model(&#39;baojia&#39;);
$Class=new Model(&#39;class&#39;);

2. 그런 다음 분류에서 데이터를 쿼리합니다. 테이블과 유사한 차원 형태입니다. 단일 데이터 조각을 꺼내는 것은 데이터의 각 행을 읽는 것과 같습니다. 3da5ee660f26a047cce0b9503e43e613를 호출하면 thinkphp 백그라운드가 자동으로 각 데이터 행을 읽습니다.

$parent=$Class->select();

인용문의 데이터를 $parent에 저장합니다. 여기서 $n은 $parent 배열의 일련 번호이며, 이는 $parent에 저장된 데이터 테이블과 동일합니다. 각 행은 해당 데이터를 가리키는 인덱스를 추가합니다. 이 카테고리에.

foreach($parent as $n=> $val){
$parent[$n][&#39;voo&#39;]=$Baojia->where(&#39;belongto=\&#39;&#39;.$val[&#39;name&#39;].&#39;\&#39;&#39;)->select();   
}

3.마지막으로:

$this->assign(&#39;list&#39;,$parent);

출력을 보여주세요!

이 프로그램을 통해 3da5ee660f26a047cce0b9503e43e613 태그에 대해 더 깊이 이해할 수 있습니다. 실제로 데이터베이스 작업 중에는 3da5ee660f26a047cce0b9503e43e613 태그 이름을 데이터베이스 테이블 유형에만 지정할 수 있습니다. 데이터베이스 쿼리가 데이터 자체를 가져오기 때문에 배열 유형이어야 합니다.) 보기 페이지에서 3da5ee660f26a047cce0b9503e43e613 태그를 호출할 때, 특히 중첩된 경우 항상 각 레이어의 이름이 배열이어야 함을 기억하세요. 이 프로그램에서와 마찬가지로 마지막 외부 레이어인 2c7953a8f6f793cfefe6eaa0b0257de7 여기의 목록은 우리가 처음에 정의한 $parent입니다. 이 변수는 클래스를 쿼리하여 얻은 데이터 테이블을 가리킵니다. $parent[$n]['voo']가 가리키는 데이터 테이블인 내부 레이어 6cc46cb94ad56cc5a40009e49e22eac9 견적 테이블의 데이터.

이 분석을 통해 논리는 하나의 예에서 추론하여 실현할 수 있습니다. 물론

더 많은 레벨이 필요한 경우 TAG_NESTED_LEVEL 구성 매개변수를 지정할 수 있습니다.

이 경우 다음과 같은 여러 주기를 달성할 수 있습니다: 국가->지방->시->군->타운십


관련 권장 사항:

thinkPHP의 Html 템플릿 태그 사용 방법


thinkPHP


ThinkPHP 템플릿 판단 출력 빈 태그 사용법

위 내용은 Thinkphp의 volist 태그 중첩 루프 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.