Thứ Năm, 18 tháng 6, 2015

Tìm hiểu Controller trong Laravel 4.X

Ở bài trước chúng ta đã được tìm hiểu về Route và View trong Laravel. Tiếp tục chuỗi bài tìm hiểu về Laravel Framework tôi xin giới thiệu tới các bạn phần tiếp theo Tìm hiểu Controller trong Laravel 4.X

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
 Class WebController extends BaseController{
   public function index(){
     $data = array(
       "name"=>"Thế Giới WEB",
       "website"=>"thegioiweb.net.vn"
     );
     return view::make(webView, $data);    
   }
 }
?>
Ở đâ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.

Tiếp đến ta tạo một file view có tên là webView.php có nội dung như sau :
<?php
 echo $name."---".$website;
?>
Sau đó ta khai báo trong file routes.php như sau :
<?php
 Route::get("web","WebController@index");
?>
Và truy cập với đường dẫn http://localhost/laravel/public/web

Kết quả
Thế Giới WEB---thegioiweb.net.vn
Trong 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:
<?php
class WebController extends BaseController{
    public function welcome($website){
        return "WELCOME TO ".$website;
    }
}
Ta chạy đường dẫn: localhost/laravel/public/web/welcome/thegioiweb.net.vn

Kết quả
WELCOME TO thegioiweb.net.vn

Nguồn: the gioi web

SHARE THIS

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.