Ý kiến học viên

Phạm Đức Nam

Phạm Đức Nam

Chất lượng giảng dạy rất tốt, giảng viên nhiệt tình chỉ bảo.
  • - Phone : 01658977882
  • - Email : phamducnamhd292@gmai.com
  • - Facebook : Xem
Bùi Thu Hường

Bùi Thu Hường

Giảng viên hướng dẫn nhiệt tình, dễ hiểu. Chuẩn bị bài giảng của giảng...
  • - Phone : 01677692999
  • - Email : buithuhuong1107@gmail.com
Trần Hoàng Thiện

Trần Hoàng Thiện

Chất lượng học và giảng dạy tốt, hướng dẫn tận tình, truyền thụ kiến t...
  • - Phone : 0944418192
  • - Email : thienhb12@gmail.com
  • - Facebook : Xem
Viết đánh giá

Viết đánh giá

Về chất lượng đào tạo, website

Đánh giá của học viên

Ý kiến của học viên

Xem đánh giá của học viên về phpandmysql.net

Yii2 phần 6 - Sử dụng layout trong yii2 framework

Cách sử dụng layout trong yii2 framework, thường thì các framework sẽ có một file layout chính sau đó các phần như header, content và footer sẽ được gọi vào layout
Trong Yii2 framework cũng vậy, Layout chính là file frontend\views\layouts\main.php trong file main.php ta sẽ đi từng phần một.

Ở đây mình sẽ chia các folder trong frontend\view theo cấu trúc như sau
Layout trong yii2 framework

- File layout/main.php sẽ là layout chính của toàn trang web
- Partials chứa file header.php và footer cố định của trang web


Mở file frontend\views\layouts\main.php lên ta sẽ thấy có các phần sau

1. Thư viện helper của yii2
Phần này chứa các helper của yii2 framework như là Html để tạo form, NavBar menu, Breadcrumbs...
<?php

use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use frontend\assets\AppAsset;
use common\widgets\Alert;

AppAsset::register($this);
?>

2. Phần head chứa thẻ title, css và javascript
Thư viện Asset dùng để gọi css và javascript, nó sẽ load file css và javascript từ folder frontend\web
<head>
    <meta charset="<?= Yii::$app->charset ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?= Html::csrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>

3. Phần body của layout
Phần này ta sẽ chia ra làm 3 phần nhỏ, tùy vào bố cục layout của bạn như thế nào bạn chia làm các phần khác nhau, còn theo layout ở bài này thì 

- Phần header : phần đầu của trang web bao gồm các phần như là logo, menu, banner... phần này cố định
- Phần content : phần này sẽ chứa view theo từng controller, phần này động sẽ load theo từng controller
- Phần footer : phần footer là cố định

Trong thẻ <body> của file frontend\views\layouts\main.php sẽ có 3 phần chính
<body>
    <?php echo $this->render('//partials/header'); ?>

    <?= $content ?>
    
    <?php echo $this->render('//partials/footer'); ?>
</body>

Bạn có thể xem hình vẽ này để hiểu rõ hơn

Cách load layout trong yii2 framework

- Phần <?= $content ?> là phần động, khi bạn chạy một controller nào đó, view của controller này sẽ được load vào file main.php thông qua biến <?= $content ?>

- Khi ta chạy một controller nào đó thì tất cả các phần header, left menu, footer đều cố định, chỉ có phần content là thay đổi.
Bạn vẫn chưa hiểu vấn đề, bạn cần người trợ giúp?. Hãy click vào đây để gửi câu hỏi, mọi người sẽ support cho bạn