BẠN ĐÃ NGHE VỀ BITCOIN VÀ MUỐN TÌM HIỂU CHÍNH THỐNG?

HƯỚNG DẪN TOÀN TẬP ĐẦU TƯ VỚI THỊ TRƯỜNG BITCOIN 2021

>> Xem tại đây <<

học laravel 5

Bài 4 : Laravel 5 : Đưa dữ liệu ra view

Ở bài trước, chúng ta đã biết được cách 1 controller gọi chỉ định 1 view để hiển thị dữ liệu, vậy thì khi controller muốn đưa dữ liệu ra view trong Laravel 5  thì phải làm thế nào ? Bài viết hôm nay sẽ giải đáp cho các bạn điều đó.

Đưa dữ liệu ra view trong Laravel 5

a. Tạo PagesController.php

Đầu tiên mình sẽ tạo 1 controller mới đặt tên là PagesController.php trong thư mục Controllers của Laravel. Bạn có thể tạo file 1 cách thủ công, nhưng ở phạm vị bài viết này, mình sẽ tận dụng php artisan của Laravel 5 để tạo PagesController.php, và mình cũng khuyên các bạn nên học cách sử dụng php artisan nếu có thể để giúp phát triển ứng dụng nhanh hơn.

Để tạo PagesController.php mình sẽ làm như sau. Mở cmd (Ấn phím window , trong mục Search programs and filescmd, rồi enter), gõ dòng lệnh sau để di chuyển đến thư mục chưa laravel 5 của chúng ta

cd C:/wamp/www/laravel-5

tiếp đến gõ lệnh dưới đây để laravel tự động generate ra file PagesController.php

php artisan make:controller PagesController

sau khi chạy lệnh trên, vào thư mục Controllers bạn sẽ thấy file PagesController.php đã được tạo tự động với các hàm default như sau :

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class PagesController extends Controller {

	/**
	 * Display a listing of the resource.
	 *
	 * @return Response
	 */
	public function index()
	{
		//
	}

	/**
	 * Show the form for creating a new resource.
	 *
	 * @return Response
	 */
	public function create()
	{
		//
	}

	/**
	 * Store a newly created resource in storage.
	 *
	 * @return Response
	 */
	public function store()
	{
		//
	}

	/**
	 * Display the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
		//
	}

	/**
	 * Show the form for editing the specified resource.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{
		//
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function update($id)
	{
		//
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		//
	}

}

nếu như bạn cảm thấy rằng, bạn không cần dùng tới quá nhiều hàm default như vậy, mà chỉ cần tạo ra file PagesController.php trắng, thì thay đổi lại lệnh trên (thêm –plain ) như sau:

php artisan make:controller PagesController --plain

thì bạn sẽ được 1 file PagesController.php mới gọn gàng như thế này :

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class PagesController extends Controller {

	//

}

Tiếp theo, mình thêm function aboutme() vào class PagesController vừa tạo để gọi view aboutme được đặt trong folder pages

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class PagesController extends Controller {

	public function aboutme(){
		return view("pages.aboutme");
	}

}

b. Tạo routes

Trong file routes.php, bạn tạo 1 đoạn routes mới như sau để sử dụng PagesController ở trên

Route::get('/aboutme', 'PagesController@aboutme');

c.Tạo views aboutme.blade.php

Trong folder pages ở thư mục views (xem lại bài trước), mình sẽ tạo 1 file view mới đặt tên là aboutme.blade.php . Bạn sẽ thắc mắc tại sao không phải là aboutme.php mà lại là aboutme.blade.php thì mình xin thưa là aboutme.php hay aboutme.blade.php đều được, nhưng thêm blade nghĩa là bạn đang dùng template cho view , về phần này mình sẽ nói kĩ hơn trong bài viết sau này. Giờ thì các bạn hãy tạm chấp nhận vậy nhé 🙂

Gợi ý xem : Khóa học tạo website với Laravel 5 tặng mã giảm giá 40% + Hỗ trợ việc làm sau khi học xong

Tiếp tục, thông tin trong file aboutme.blade.php của mình sẽ như sau :

<html>
<head>
	<meta charset="UTF-8">
	<title>About me</title>

</head>
<body>
	<h1>About me</h3>
	<p>I'm Hieu, I'm PHP Developer, I love you ^_^</p>
</body>
</html>

Vào trình duyệt, gõ địa chỉ

http://localhost/laravel-5/public/aboutme

bạn sẽ được kết quả như sau :

Gợi ý : Bạn là người mới và muốn tìm hiểu về Bitcoin nhưng không biết bắt đầu từ đâu? Click xem ngay Hướng Dẫn Đầu Tư Bitcoin Cho Người Mới nhé!

laravel-5-aboutme
kết quả chạy view aboutme.blade.php

 4. Gửi dữ liệu ra view

Đây chỉnh là phần quan trọng chính trong bài viết ngày hôm nay. Nhìn lại 1 chút ở ví dụ trên, bạn sẽ thấy mình đơn giản chỉ là từ PagesController chúng ta gọi view about me, vậy thì nếu từ trong PagesController ta có dữ liệu nào đó và muốn gửi ra ngoài view thì phải làm thế nào ?

Dưới đây mình sẽ chỉ ra 1 số cách giúp bạn đưa dữ liệu ra ngoài view từ controller.

Cách 1 : Đưa dữ liệu đơn ra ngoài view với phương thức with

Sửa lại function aboutme() trong controller 1 chút như sau :

	public function aboutme(){
		$data= 'My name is Hieu';
		return view("pages.aboutme")->with('name',$data);
	}

Ở đoạn code trên, với phương thức with bạn đã gửi dữ liệu với key là name và value là $data ra ngoài view. Tiếp đến chúng ta sẽ sửa lại file aboutme.blade.php như sau để bắt lấy dữ liệu gửi ra từ controller như sau :

<html>
<head>
	<meta charset="UTF-8">
	<title>About me</title>

</head>
<body>
	<h1>About me {{ $name }}</h3>
	<p>I'm Hieu, I'm PHP Developer, I love you ^_^</p>
</body>
</html>

F5 lại trình duyệt bạn sẽ được kết quả như sau :

laravel-5-aboutme-1
gửi dữ liệu đơn ra view với with

Awesome !  thật tuyệt vời phải ko nào ? Laravel đã tự động parse key là name thành biến $name khi ra ngoài view, và với cách viết {{ $name }}, Laravel đã echo dữ liệu “My name is Hieu” ra ngoài trình duyệt cho bạn, thay vì bạn phải viết như thế này <?php echo $name ?>. Đó chưa phải là toàn bộ công dụng của dấu {{ }} thần thánh này đâu, bạn sẽ hiểu nhiều hơn về công dụng tuyệt với của nó khi bạn có cơ hội gặp phải sau này 🙂

Cách 2 : Đưa nhiều dữ liệu ra ngoài view với phương thức with

Sửa lại function aboutme() trong PagesController.php 1 tí như sau :

public function aboutme(){
	$name = 'My name is Hieu';
	$age = '24';
	return view("pages.aboutme")->with([
		'name' => $name,
		'age' => $age
	]);
}

Sửa lại file aboutme.blade.php như sau :

<html>
<head>
	<meta charset="UTF-8">
	<title>About me</title>

</head>
<body>
	<h1>About me {{ $name }} {{ $age }}</h3>
	<p>I'm Hieu, I'm PHP Developer, I love you ^_^</p>
</body>
</html>

F5 lại trình duyệt và xem kết quả nhé 🙂

Cách 3 : Gửi dữ liệu ra ngoài view không dùng từ khóa with

Sửa function aboutme() thành như sau :

public function aboutme(){
	$name = 'My name is Hieu';
	$age = '24';
	$data = [];
	$data['name'] = $name;
	$data['age'] = $age;
	return view("pages.aboutme",$data);
}

Giữ nguyên file aboutme.blade.php, không chỉnh sửa gì thêm và F5 lại trình duyệt, xem kết quả nhé.

Kết thúc bài viết đưa dữ liệu ra view trong Laravel 5. Bạn thấy đó, Laravel thật tuyệt vời phải không nào? chi riêng cái việc gửi dữ liệu ra ngoài view và cách view hiển thị dữ liệu thôi mà bạn đã thấy laravel cũng cấp cho bạn đầy đủ tùy chọn “màu mè hoa lá cành” đến mức nào. Mình dừng bài viết ở đây, chúc các bạn học tốt. Nếu có bất kỳ thắc mắc hay góp ý thì để lại comment bên dưới nhé, Thân !

Có thể bạn quan tâm: Tặng coupon 40% giá trị khóa học tạo website với Laravel 5

Có ích

Binance LaunchPool là gì? Hướng dẫn sử dụng Binance LaunchPool

Binance LaunchPool là gì? Hướng dẫn sử dụng Binance LaunchPool 2021

Bạn đang tìm kiếm Binance Launchpool là gì, cách sử dụng Binance LaunchPool thì đây …

Subscribe
Notify of
guest
38 Bình Luận
Inline Feedbacks
Xem Tất Cả Bình Luận
Nam
Nam
1 năm trước

Anh ơi, giờ cái chỗ Routes ý thì không là Route::get(‘/aboutme’, ‘PagesController@aboutme’); sao ý anh
Em phải để là
Route::get(‘/aboutme’,function(){
return view(‘aboutme’);
});
Trong Routes/web.php thì mới được, Vậy có cách nào nhanh hơn không anh

Nguyễn Mạnh Cường
5 năm trước

Nếu a làm 1 seri video project về lrv5 để mọi người rõ hơi về 1 roject hoàn chỉnh thì thật hoàn hảo :).

Thanks a!

Duy Thanh
Duy Thanh
5 năm trước

Rất hay. Thanks

Nhuong Pham
Nhuong Pham
5 năm trước

Mình rất khâm phục những người đi chia sẻ kiến thức như bạn. Cảm ơn bạn rất nhiều.

dominhthao
dominhthao
5 năm trước

public function aboutme(){
return view(“aboutme”);
}
Bạn ơi update cái này nhé mình dùng aboutme.blade mà

Nguyễn Hưởng
Nguyễn Hưởng
5 năm trước

Sao mình làm ở bước tạo controller mà nó không sinh ra các function mặc định nhỉ, mặc dù mình không gõ thêm -plain phía sau

kien
kien
5 năm trước

Rất cảm ơn bạn về những bài viết.
Cho minh hỏi chút. Minh thưc hiện các bước cài đặt như bạn hướng dẫn khi mở các Route, Controller.. không thấy hiển thị đầy đủ các Route, Controller, vidu:
Route::get(‘/’, ‘WelcomeController@index’); hay cac phuong thưc trong Controller khi tạo Controller trong artisan:
public function index()
{
//
}…

tungnguyenthanh262635450
6 năm trước

Cho mình hỏi? Nếu mình sử dụng css, mình thấy khi tạo project đã có sẵn 1 folder (\vendor\phpunit\php-code-coverage\src\CodeCoverage\Report\HTML\Renderer\Template) chứa css, trong file master mình khai báo đường dẫn ntn?

Chỉ cho mình với.!

Nam
Nam
6 năm trước

(help)Sao mình làm Router rồi, Tạo PagesController, tạo view aboutme.blade.php rồi mà khi gõ http://localhost/laravel5/public/aboutme lại thông báo The requested URL /laravel5/public/aboutme was not found on this server.

Nguyễn
6 năm trước

Sao của mình chổ {{ $name }} nó không ra kết quả nhỉ, chỉ hiên {{ $name }} thôi

Anh Vu
Anh Vu
Phản hồi đến  Nguyễn
6 năm trước

Nếu {{ $name }} không hiện thì dùng cho nhanh. Của mình cũng không hiện kết quả khi dùng 2 dấu ngoặc nhọn

Nguyễn T. Đạt
Phản hồi đến  Nguyễn
5 năm trước

ở view tên file phải có thêm blade mới dùng được nhé bạn. Ví dụ : [tên_view].blade.php

Lê Minh hiếu
Lê Minh hiếu
6 năm trước

Mình mong bạn sẽ ra nhìu bài học nữa…cảm ơn bạn đã cung cấp tài liệu hay cho mọi người!

Huy
Huy
6 năm trước

Bạn cho mình hỏi, Nếu trong controller mình lấy dữ liệu từ 1 bảng có khoảng 10 cột thì mình đưa ra view như thế nào ạ?
Ví dụ: ở trang view là một trang chứa nhiều sản phẩm gồm (tên, thông tin, giá bán, v.v…), mình muốn dùng controller để lấy dữ liệu và đưa ra view, ở view mình dùng câu lệnh for để hiển thị sản phẩm cho tiện hơn.
Cảm ơn bạn!

huystp
Phản hồi đến  Tôi Là Hoàng Hiếu
6 năm trước

cảm ơn bạn nha.. Mình làm được rồi ^^
Rất cảm ơn về loạt bài hướng dẫn của bạn, rất hữu ích!

phpname
phpname
6 năm trước

anh ơi cho em hỏi sau khi làm xong hết rồi mà gõ ” php artisan serve “nó báo k thể mở artisan là sao vậy anh? 😀

xhtkhoa
6 năm trước

Chào bạn, bạn hướng dẫn cách dùng chung một default template với? Ví dụ như chẳng lẽ cứ page nào cũng phải copy paste cái header, footer, title site vào hết sao, mình nghĩ chắc có cách nào đó giống các framework khác, cảm ơn bạn nhiều về bài viết hữu ích. 🙂

quochoangvp
6 năm trước

Cố gắng tiếp tục bạn nhé. Mình cũng đang tìm hiểu. Xem mấy clip trên laracasts bằng tiếng Anh nên cũng không hiểu mấy. Cám ơn bạn đã chia sẻ!

Công Hào
Công Hào
6 năm trước

Chào a,
A biết dễ hiểu quá.
Hi vọng e sẽ sớm ra nhiều bài hay như này nũa. :))

atula66
6 năm trước

Chào bạn, cho mình hỏi sao mình chạy php artisan giống như bạn không được vậy, báo lỗi là Could not open input file: artisan

Đoàn Lê
6 năm trước

Hi bạn,các bài hướng dẫn khá bổ ích.Mình hỏi chút là dùng IDE j để code với Laravel thì hợp lí nhỉ,kiểu như nhiều lúc mình code sai nó báo lỗi giùm mình đó.Mình dùng DreamWear,code đúng như bạn,nhưng ide cứ hiển thị lỗi mặc dù vẫn chạy đúng 😀

ToanNV
ToanNV
6 năm trước

Em hảo hứng search top framework php được laravel xếp top lao vào cầy cuốc và nhận ra bản 5. đã thay đổi cấu trúc thư mục với bản 4. mà trên mạng toàn toturial bản 4. . Tưởng trừng dừng cuộc chơi may quá Thank anh nhé

Toàn Nguyễn
Phản hồi đến  Tôi Là Hoàng Hiếu
6 năm trước

anh ơi cho em hỏi sau khi xong hết rồi em gõ câu lệnh : php artisan serve mà nó báo k tìm thấy artisan là sao vậy anh 😀

Huệ
Huệ
Phản hồi đến  Toàn Nguyễn
4 năm trước

Bạn phải vào trong thư mục gốc của nó thì mới tìm thấy aratisan nhé

ggg
ggg
Phản hồi đến  ToanNV
6 năm trước

minhanh

Minh Ánh
Minh Ánh
Phản hồi đến  ToanNV
6 năm trước

Hồng Ân

38
0
Bạn có ý kiến về bài viết, hãy để lại bình luận nhé!x
()
x