Giải pháp chuyển đổi số trọn gói cho doanh nghiệp Việt

View Trong Laravel - Tài liệu lập trình laravel

Tài liệu lập trình laravel

← Toàn bộ tài liệu


Bài 6: View Trong Laravel

Bài 6/28 Xem dạng sách

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 toidicode.blade.php vào trong thư mục resources/views. File hello.php có nội dung:

html
copy
<!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 toidicode.blade.php có nội dung:

php
copy
<!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>
    {{ 'toidicode.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 {{ 'toidicode.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 laraver.

Chú Ý: Khi sử dụng kết hợp với angularjs thì không được dùng blade template.

-Tạo thư mục cho view:

+Để 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:

php
copy
<!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>

-như thế là chúng ta đã tạo được view rồi đúng không.

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:

php
copy
view('duongdantoiview', 'dulieucantruyenvaoview');

Chú thích:

  • 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')
  • 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:

php
copy
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:
php
copy
Route::get('chao/{user}', function ($user) {
    return view('hello-user', ['user' => $user]);
});
  • View: hello-user.php:
php
copy
<?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

php
copy
$user

=>Mình sẽ nói chi tiết về blade template ở bài sau.

-Gọi view trong controller:

-Cú pháp:

php
copy
public function index()
{
    return view('view', 'dataneuco');
}

-Cũng Tương tự như gọi view trong route các bạn thực hành tương tự lại VD trên nhé!

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.

VD:

php
copy
<?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()
    {
        //
    }
}

4,Các các truyền dữ liệu cho view.

 

Dùng compact().

Cú Pháp:

php
copy
compact('tencuabientruyenvao')

VD:

php
copy
Route::get('chao/{user}', function ($user) {
    return view('hello-user', compact('user'));
});
// view muon hien thi thi goi bien $user

Dùng with().

Cú Pháp:

php
copy
view('tenview')->with('key', 'value');

VD:

php
copy
Route::get('chao/{user}', function ($user) {
    return view('hello-user')->with('user', $user);
});

//de hien thi trong view goi bien $user

Dùng Mảng.

Cú pháp:

php
copy
view('tenview', ['key' => 'value']);

VD:

php
copy
Route::get('chao/{user}', function ($user) {
    return view('hello-user', ['user' => $user]);
});

5,Lời Kết.

-Qua bài này mình đã giới thiệu cho các bạn về view trong laravel rôi, còn một số phần như view::composer nếu các bạn cần thì mình sẽ viết thêm nhé!Bài sau mình sẽ tìm hiểu về blade template trong laravel.

Sơ đồ quan hệ các bảng

Table Name: {{table.name}}
Num Name Type
{{field_index+1}}
{{field.name}} {{field.type}}

Hỏi đáp

Gửi với tên {{comment_full_name}}

Chưa có câu hỏi nào cho bài này.

Zalo 0936.006.058 Hotline 0936.006.058