CakePHP-요소보기
웹 페이지의 특정 부분은 여러 웹 페이지에서 반복되지만 위치는 다릅니다. CakePHP는 이러한 반복 된 부분을 재사용하는 데 도움이 될 수 있습니다. 이러한 재사용 가능한 부품을Elements - help box, extra menu, 등. 요소는 기본적으로 mini-view. 요소에 변수를 전달할 수도 있습니다.
Cake\View\View::element(string $elementPath, array $data, array $options =[]
위의 함수에는 다음과 같은 세 가지 인수가 있습니다.
첫 번째 인수는 템플릿 파일의 이름입니다. /src/Template/element/ 폴더.
두 번째 인수는 렌더링 된 뷰에서 사용할 수있는 데이터 배열입니다.
세 번째 인수는 옵션 배열입니다. 예 : 캐시.
세 가지 인수 중 첫 번째 인수는 필수이고 나머지는 선택 사항입니다.
예
다음 위치에서 요소 파일 만들기 src/Template/element 라는 디렉토리 helloworld.php. 해당 파일에 다음 코드를 복사하십시오.
src / 템플릿 / 요소 /helloworld.php
<p>Hello World</p>
폴더 생성 Elems ...에서 src/Template 그 디렉토리 아래에 Viewindex.php라는 파일. 해당 파일에 다음 코드를 복사하십시오.
src / Template / Elems / index.php
Element Example: <?php echo $this->element('helloworld'); ?>
변경 config/routes.php 다음 프로그램과 같이 파일.
config / routes.php
<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true,
]));
$builder->applyMiddleware('csrf');
$builder->connect('/element-example',['controller'=>'Elems','action'=>'index']);
$builder->fallbacks();
});
만들기 ElemsController.php 파일 src/Controller/ElemsController.php. 컨트롤러 파일에 다음 코드를 복사합니다.
src / Controller / ElemsController.php
<?php
namespace App\Controller;
use App\Controller\AppController;
class ElemsController extends AppController{
public function index(){
}
}
?>
http : // localhost / cakephp4 / element-example URL을 방문하여 위의 예를 실행하십시오.
산출
실행시 위의 URL은 다음과 같은 출력을 제공합니다.