Thứ Hai, 24 tháng 12, 2018

lập trình PHP CakePHP - Bộ điều khiển

Bộ điều khiển như tên chỉ ra điều khiển ứng dụng. Nó hoạt động như một cầu nối giữa các mô hình và quan điểm.

Bộ điều khiển xử lý dữ liệu yêu cầu, đảm bảo rằng các mô hình chính xác được gọi và phản hồi hoặc chế độ xem đúng được hiển thị. 

Khóa học lập trình PHP
Khóa học lập trình PHP
Các phương thức trong lớp của bộ điều khiển được gọi là các hành động . Mỗi bộ điều khiển tuân theo các quy ước đặt tên. 

Tên lớp Trình điều khiển ở dạng số nhiều, Vỏ bọc lạc đà và kết thúc trong Trình điều khiển - Bài viết Trình điều khiển .

Trình điều khiển ứng dụng


Lớp AppConttroller là lớp cha của tất cả các bộ điều khiển của ứng dụng. Lớp này mở rộng lớp Trình điều khiển của Khóa học lập trình PHP. AppControll được định nghĩa tại src / Controller / AppControll.php . Các tập tin có chứa mã sau đây.
<?php
   namespace App\Controller;
   use Cake\Controller\Controller;
   use Cake\Event\Event;

   class AppController extends Controller{
      public function initialize(){
         parent::initialize();
         $this->loadComponent('RequestHandler');
         $this->loadComponent('Flash');
      }
      public function beforeRender(Event $event){
         if (!array_key_exists('_serialize', $this->viewVars) &&
            in_array($this->response->type(), ['application/json', application/xml'])) {
            $this->set('_serialize', true);
         }
      }
   }
AppContoder có thể được sử dụng để tải các thành phần sẽ được sử dụng trong mọi bộ điều khiển của ứng dụng của bạn.

Các thuộc tính và phương thức được tạo trong AppContoder sẽ có sẵn trong tất cả các bộ điều khiển mở rộng nó.

Phương thức khởi tạo () sẽ được gọi ở cuối hàm tạo của bộ điều khiển để tải các thành phần.

Thao tác điều khiển


Các phương thức trong lớp trình điều khiển được gọi là Hành động. Các hành động có trách nhiệm gửi phản hồi thích hợp cho trình duyệt / người dùng thực hiện yêu cầu.

Chế độ xem được hiển thị bằng tên của hành động, nghĩa là tên của phương thức trong bộ điều khiển.
class RecipesController extends AppController{
   public function view($id){
      // Action logic goes here.
   }
   public function share($customerId, $recipeId){
      // Action logic goes here.
   }
   public function search($query){
      // Action logic goes here.
   }
}
Như bạn có thể thấy trong ví dụ trên, RecipesContoder có 3 hành động - Xem, Chia sẻ và Tìm kiếm .

Khóa học lập trình PHP Chuyển hướng

Để chuyển hướng người dùng sang một hành động khác của cùng một bộ điều khiển, chúng ta có thể sử dụng phương thức setAction (). Sau đây là cú pháp của phương thức setAction () -

Cú pháp

Cake\Controller\Controller::setAction($action, $args...)

Đoạn mã sau sẽ chuyển hướng người dùng đến hành động lập chỉ mục của cùng một bộ điều khiển.

$this->setAction('index');

Ví dụ sau đây cho thấy việc sử dụng phương pháp trên.

Thí dụ

Thực hiện thay đổi trong tệp config / Rout.php như trong chương trình sau.

cấu hình / tuyến.php
<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('/redirectcontroller',['
         controller'=>'Redirects','action'=>'action1']);
      
      $routes->connect('/redirectcontroller2',['
         controller'=>'Redirects','action'=>'action2']);
      
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();
Tạo một tệp RedirectsControll.php tại src / Controller / RedirectsControll.php. Sao chép mã sau trong tệp điều khiển.

src / Trình điều khiển / RedirectsControll.php
<?php
   namespace App\Controller;
   use App\Controller\AppController;
   use Cake\ORM\TableRegistry;
   use Cake\Datasource\ConnectionManager;

   class RedirectsController extends AppController{
      public function action1(){
      }
      public function action2(){
         echo "redirecting from action2";
         $this->setAction('action1');
      }
   }
?>
Tạo thư mục Chuyển hướng tại src / Mẫu và trong thư mục đó tạo tệp Xem có tên là action1.ctp . Sao chép mã sau trong tập tin đó.

src / Mẫu / Chuyển hướng / hành động1.ctp

This is an example of how to redirect within controller.

Thực hiện ví dụ trên bằng cách truy cập URL sau.

http: // localhost: 85 / PHP / redirect-controller

Đầu ra


Khi thực hiện, bạn sẽ nhận được đầu ra sau.

Bây giờ, hãy truy cập URL sau - http: // localhost: 85 / PHP / redirect-controller2

URL trên sẽ cung cấp cho bạn đầu ra sau.

Đang tải mô hình

Trong Khóa học lập trình PHP , một mô hình có thể được tải bằng phương thức loadModel (). Sau đây là cú pháp cho phương thức loadModel ().

Cake\Controller\Controller::loadModel(string $modelClass, string $type) 

Có hai đối số cho hàm trên

Đối số đầu tiên là tên của lớp mô hình.

Đối số thứ hai là loại kho lưu trữ để tải.

Thí dụ

Nếu bạn muốn tải mô hình Bài viết trong bộ điều khiển, thì nó có thể được tải bằng cách viết dòng sau trong hành động của bộ điều khiển.

$this->loadModel('Articles');

Không có nhận xét nào:

Đăng nhận xét

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...