Bài 10: View trong Laravel - Học lập trình Laravel

Đăng bởi: Admin | Lượt xem: 2663 | Chuyên mục: Laravel


1. Tạo view trong Laravel

View Trong Laravel thì bắt buộc phải được nằm trong thư mục resources/views và phải có đuôi là .php hoặc .blade.php (Nếu như bạn muốn sử dụng blade template).  Còn việc tạo 2 file này như thế nào thì chắc hẳn các bạn cũng viết rồi.
Trong view thì các bạn có thể sử dụng tất cả các ngôn ngữ trong file PHP hỗ trợ như: HTML,CSS,JS,.. VD: Mình sẽ tạo một view có tên hello.php và một view hoclaptrinh.blade.php vào trong thư mục resources/views. File hello.php có nội dung:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>hello cac ban</title>
    <link rel="stylesheet" href="">
</head>
<body>
    hello cac ban!
</body>
</html>
Và trong hoclaptrinh.blade.php có nội dung:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>hello cac ban</title>
    <link rel="stylesheet" href="">
</head>
<body>
    {{ 'hoclaptrinh.com' }} hello cac ban!
</body>
</html>
Như ở trên các bạn thấy trong file toidicode.blade.php có sử dụng đoạn {{ 'hoclaptrinh.com'}} đây là đoạn code xử lý của blade template. Và đó cũng là lý do mình khuyên các bạn nên sử dụng phần view mở rộng của laravel.
Chú ý: Khi sử dụng kết hợp với angularjs thì không được dùng blade template.
Để tạo các thư mục con cho view thì các bạn chỉ cần tạo một thư mục nữa trong resources/views thì larver cũng chấp nhận đó là view(Cứ nằm trong thư mục resources/views là được).
VD: Trong thư mục Resources/views mình sẽ tạo thêm một thư mục admin, và trong thư mục admin mình tạo thêm một view có tên là login.blade.php có nội dung như sau:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Login</title>
    <link rel="stylesheet" href="">
</head>
<body>
    Đây là trang login
</body>
</html>

2. Gọi view trong Laravel

Ở phần 1 chúng ta đã tạo được view ở trong laravel rồi đúng không. Giờ chúng ta sẽ tiến hành triệu tập view trong Laravel nhé. Cú pháp:
view('duongdantoiview', 'dulieucantruyenvaoview');
Chú thích:
  1. duongdantoiview: Là đường dẫn tới file view lấy từ thư mục resources/views . VD như mình muốn gọi file view hello ở vd trên: view('hello'). Gọi view login trong thư mục admin view('admin.login')
  2. dulieutruyenvaoview: là dữ liệu mà các bạn muốn truyền vào view(nếu không có thì bỏ qua).
Gọi view trong route:
Cú pháp:
Route::get('duogndanroute', function () {
    return view('tenview', 'dataneuco');
});
VD: Mình sẽ tạo 1 route rồi gọi một view và truyền luôn tham số vào bên trong cho view
Route:
Route::get('chao/{user}', function ($user) {
    return view('hello-user', ['user' => $user]);
});
View: hello-user.php
<?php 
    echo $user;
?>
Nếu view của bạn sử dụng blade template thì sẽ có tên: hello-user.blade.php Và có nội dung như sau
{{ $user }}
Gọi view trong controller với cú pháp:
public function index()
{
    return view('view', 'dataneuco');
}

3. Tạo View dùng chung

Đôi khi, bạn cần chia sẻ một thông tin cho tất cả các view sẽ hiển thị trên ứng dụng, ví dụ: hiển thị thông tin thành viên đã đăng nhập lên thanh trạng thái của các trang trong ứng dụng chẳng hạn.Chẳng lẽ cứ phải  lặp đi lặp lại việc insert data trong hàm view().
Thay vào đó,Laravel có hỗ trợ cho chúng ta chia sẻ view cho toàn ứng dụng với  hàm share().Để sử dụng các bạn chỉ cần thêm nó vào trong hàm boot trong file app/Providers/AppServiceProvider.php. Ví dụ:
<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        View::share('key', 'value');
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}
Bài tiếp theo: Blade template engine trong Laravel >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!