Tạo model đầu tiên với cakephp
Lượt xem: 4909
Tạo model đầu tiên với cakephp
Model là trái tim của ứng dụng CakePHP. Chúng cho phép chúng ta đọc và sửa đổi dữ liệu. Chúng cho phép chung ta xây dựng quan hệ giữa các dữ liệu của mình, xác thực (validate) dữ liệu và chấp nhận các quy tắc (rules) của ứng dụng. Models là nền tảng cần thiết để xây dựng (build) các hành động (actions) trong Controller và Template.
Models của CakePHP gồm các đối tượng Table và Entity. Đối tượng Table cung cấp quyền truy cập vào bộ sưu tập (collection) của các thực thể (entities) được lưu trữ trong một bảng cụ thể. Chúng được lưu trữ trong src/Model/Table. Tập tin mà chúng ta tạo ra sẽ lưu trữ ở src/Model/Table/ArticlesTable.php.
Nội dung hoàn thành sẽ như sau:
<?php
// src/Model/Table/ArticlesTable.php
namespace App\Model\Table;
use Cake\ORM\Table;
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->addBehavior('Timestamp');
}
}
Chúng ta đã đính kèm hành vi dấu thời gian (Timestamp) sẽ tự động được điền vào các cột created và modified của bảng. Bằng cách đặt tên đối tượng Table là AritclesTable. CakePHP có thể sử dụng các quy tắc đặt tên để biết rằng mô hình của chúng ta sử dụng bảng articles. CakePHP cũng sử dụng các quy ước để biết rằng cột id là khoá chính.
Chú ý:
CakePHP sẽ tự động tạo một mô hình đối tượng cho bạn nếu nó không tìm thấy tập tin tương ứng trong src/Model/Table. Điều này cũng có nghĩa là nếu bạn vô tình đặt tên tập của mình sai (ví dụ: articlestable.php hoặc ArticleTable.php), CakePHP sẽ không nhận ra bất kỳ cài đặt nào của bạn và sẽ sử dụng mồ hình được tạo thay thế.
Chúng ta sẽ tạo một lớp thực thể (Entity) cho Articles. Các thực thể thể hiện một bảng ghi trong cơ sở dữ liệu và cung cấp hành vi cấp hàng cho dữ liệu của chúng ta. Thực thể của chúng ta sẽ được lưu vào src/Entity/Article.php. Nội dung file hoàn thành sẽ như sau:
<?php
// src/Model/Entity/Article.php
namespace App\Model\Entity;
use Cake\ORM\Entity;
class Article extends Entity
{
protected $_accessible = [
'*' => true,
'id' => false,
'slug' => false,
];
}
Chúng ta chỉ thiết lập thuộc tính _accessoable để kiểm soát các thuộc tính có thể được sửa đổi. Chúng ta tìm hiểu thêm và cách tạo controller và teamplate.
Video
Nguồn https://book.cakephp.org/3.0/en/quickstart.html