Cũng ở bài trước chúng ta đã thây được sự linh hoạt và mạnh mẽ đến từ route trong Laravel, nó cho phép chúng ta thực thi trực tiếp một quá trình thông qua route mà không cần xử lý bởi Controller. Tuy nhiên đối với các dự án có độ lớn và phức tạp cao thì chúng ta nên thao tác chúng với Controller giúp cho việc xây dựng và vận hành một cách linh hoạt cũng như sự dễ dàng phát triển sau này.
Điều đầu tiên khi làm việc với Controller trong Laravel ta tạo một file trong thư mục app/controllers theo cấu trúc tên file như sau: tên_fileController.php
Ví dụ: tintucController.php, sanphamController.php …
Để hiểu rõ hơn quá trình làm việc trong Controller ta đi làm một ví dụ như sau. Tạo một file có tên là WebController.php với nội dung :
<?phpỞ đây chúng ta đã tạo ra một lớp controller với tên là WebController được kế thừa từ lớp ban đầu BaseController. Trong lớp WebController ta xây dựng phương thức index. Và trong phương thức index ta gọi đến views có tên là webView và tham số truyền là mảng $data.
Class WebController extends BaseController{
public function index(){
$data = array(
"name"=>"Thế Giới WEB",
"website"=>"thegioiweb.net.vn"
);
return view::make(webView, $data);
}
}
?>
Tiếp đến ta tạo một file view có tên là webView.php có nội dung như sau :
<?phpVà truy cập với đường dẫn http://localhost/laravel/public/web
echo $name."---".$website;
?>
Sau đó ta khai báo trong file routes.php như sau :
<?php
Route::get("web","WebController@index");
?>
Kết quả
Thế Giới WEB---thegioiweb.net.vnTrong trường hợp bạn muốn truyền giá trị từ route tới controller ta sẽ thực thi như sau:
Trước hết, trong quá trình lap trinh PHP này, ta cần khai báo trong Route đối số ta mong muốn:
Route::get("web/content/{webName}","WebController@welcome");Sau đó ta tạo phương thức welcome() với đối số là $website như sau:
<?phpTa chạy đường dẫn: localhost/laravel/public/web/welcome/thegioiweb.net.vn
class WebController extends BaseController{
public function welcome($website){
return "WELCOME TO ".$website;
}
}
Kết quả
WELCOME TO thegioiweb.net.vn
Nguồn: the gioi web
0 nhận xét:
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.