処理コードイグニット4ビュー-14-レイアウト
レイアウトの使用
多くのサイトでレイアウトが使用されています.どのページでも共通画面(共通タイトル、汎用プッシュなど)を使用でき、通常は本文のみが変更されます.
これらの共通の部分を1つの場所に置いて、本文のレイアウトだけを変更します.
コードは、この世代4でもレイアウトをサポートします.どうすればいいか見てみましょう.
作成するページは次のとおりです.
コードはhttps://github.com/koeunyeon/ci4/tree/view-layoutにあります.
View
コントローラに次の方法を追加します.app/Controllers/View.php
public function layout()
{
$hello = "안녕하세요"; // (1)
return view("/view/layout_content.php", [ // (2)
'hello' => $hello
]);
}
(1)任意の変数$hello
を宣言し、データをビューに転送して、レイアウトおよびレイアウト本文にデータが転送されることを保証する.(2)返されるビュー名は「レイアウトパス」ではなく「実際に使用したコンテンツパス」である.
コンテンツを担当するビューを追加します.
app/Views/view/layout_content.php
<?= $this->extend('/view/layout') ?> <!-- (1) -->
<?= $this->section('content') ?> <!-- (2) -->
<h2>여기는 레이아웃 본문입니다.</h2>
<p style="font-weight: bold;">컨트롤러에서 보낸 데이터 : <?= $hello ?></p> <!-- (3) -->
<?= $this->endSection() ?> <!-- (4) -->
(1)ビューのレイアウトを$this->extend(레이아웃 경로)
コードとして指定する.コードイグニット4は、「現在のビューを展開」(extend)を表す.パラメータはレイアウトパスです.(2)本文に置き換えられた部分(section)を
$this->section(섹션이름)
として指定する.パラメータは部分の名前を取ります.1つのセクションでは、複数のセクションに分割できるため、個別に名前を付けることができます.例は'content'
として指定されます.(3)コントローラから送信されたデータをマークするために
<?= $hello ?>
をチェックする.同じデータもレイアウトで使用できますが、区別を容易にするために、文字を太字(font-weight: bold;
)にマークしてみました.(4)
$this->endSection()
構文を用いて節の終わりを表す.アウトラインをスナップするレイアウトビューを追加します.
app/Views/view/layout.php
<!doctype html>
<html>
<head>
<title>레이아웃 확인</title>
</head>
<body>
<h1>여기는 레이아웃 영역입니다.</h1>
<p style="font-style: italic">컨트롤러에서 보낸 데이터 : <?= $hello ?></p> <!-- (1) -->
<hr />
<?= $this->renderSection('content') ?> <!-- (2) -->
</body>
</html>
(1)コントローラから送信されたデータが読み取り可能であることを確認する.(2)
$hello
構文を用いてレイアウト内のコンテンツの配置位置を指定する.セクション名は、$this->renderSection(섹션이름)
からlayout_content.php
に設定されているため、$this->section('content')
と命名される.ブラウザで、http://localhost:8080/view/layoutに接続して結果を表示します.
この例では、実際の出力結果を検証するために、ソースビューを使用して直接コンテンツを表示します.ほとんどのブラウザでは、
content
キーを押して現在のページのソースを表示できます.<!doctype html>
<html>
<head>
<title>레이아웃 확인</title>
</head>
<body>
<h1>여기는 레이아웃 영역입니다.</h1>
<p style="font-style: italic">컨트롤러에서 보낸 데이터 : 안녕하세요</p>
<hr />
<h2>여기는 레이아웃 본문입니다.</h2>
<p style="font-weight: bold;">컨트롤러에서 보낸 데이터 : 안녕하세요</p>
</body>
</html>
$this->renderSection('content')
ラベルとcontent
ラベルを含む本文「部分」は、レイアウトを使用して拡張されます.やっと長時間の観覧エリアを終了次の章では、バックエンド開発者が好むデータベースについて説明します.
Reference
この問題について(処理コードイグニット4ビュー-14-レイアウト), 我々は、より多くの情報をここで見つけました https://velog.io/@koeunyeon/코드이그나이터4-뷰-다루기-14-레이아웃テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol