Trình tạo Crud là một trang web để tự động tạo chức năng CRUD [Tạo Đọc Cập nhật và Xóa] trong PHP. crud trong php, crud trong laravel, crud trong codeigniter, crud trong cake php được thực hiện với điều này. Bạn có thể tạo crud với tất cả các framework phổ biến. crud có thể được tạo trong Laravel với mẫu chế độ xem lưỡi và tạo cơ sở dữ liệu trong cả tạo cơ sở dữ liệu truy vấn và cả khi di chuyển. Các trang xem biểu mẫu Cake PHP được tạo với lớp biểu mẫu trong. ctp. Trình tạo Crud hỗ trợ hầu hết tất cả các khung phổ biến và các phiên bản của nó. Mỗi khung tạo crud với tiêu chuẩn mẫu xem trong khung đó. Chúng tôi đang cố gắng cải thiện trải nghiệm của bạn với trình tạo crud, vì vậy vui lòng gửi phản hồi của bạn tới info@crudgenerator. Trong. Kiểu dáng Bootstrap được thêm vào với tất cả các trang xem. trình tạo crud codeigniter, trình tạo crud laravel, trình tạo crud php mysql, trình tạo crud cake php và bạn cũng có thể nghiên cứu ví dụ crud codeigniter, ví dụ crud laravel, ví dụ crud php và ví dụ crud bánh php với sự trợ giúp của trình tạo crud. Hi vọng rằng crud generator hữu ích cho bạn. Thưởng thức lập trình với trình tạo Crud
Đây không phải là chức năng ánh xạ OR, do đó lược đồ trên cơ sở dữ liệu phải được tạo thủ công
thực thể
Các thực thể [các đối tượng dữ liệu] là các lớp PHP đơn giản. Họ phải có trường
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }8 và cần có hàm tạo chấp nhận tất cả các trường. Để có thể tuần tự hóa chúng thành các đối tượng JSON, chúng phải triển khai
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }9 trong giao diện. Trong phương thức
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }0, tất cả các thuộc tính của đối tượng được trả về thông qua phương thức
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }1
class User implements JsonSerializable { private $id; private $firstName; private $lastName; function __construct[$id, $firstName, $lastName] { $this->id = $id; $this->firstName = $firstName; ... } public function getId[] { ... } public function setId[$id] { ... } // all getters / setters for the other properties public function jsonSerialize[] { return [object] get_object_vars[$this]; } }
Đối tượng truy cập dữ liệu
Đối với mọi thực thể, có một đối tượng truy cập dữ liệu. Nó bắt nguồn từ
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }2 và tạo ra các hoạt động CRUD cơ bản bằng cách sử dụng sự phản chiếu. Các truy vấn SQL được tạo động và sau đó được xử lý thông qua PDO đơn giản
Ví dụ: để tìm tất cả các thực thể, một truy vấn
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }0 đơn giản được tạo và kết quả được tự động ánh xạ tới một thực thể, do đó, ví dụ: các phiên bản của lớp
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }1 được trả về
Do đó, một lớp DAO phải được tạo để ghi đè phương thức
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }2
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }
Sau đó,
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }2 tạo truy vấn
public function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
Các phương pháp khác để tạo, cập nhật và xóa hoạt động theo cách tương tự. Để tạo và cập nhật, các trường của thực thể cũng cần thiết. Điều này được thực hiện bằng cách sử dụng lớp
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }4
$this->reflection = new ReflectionClass[$this->getEntityClass[]]; $properties = $this->reflection->getProperties[ReflectionProperty::IS_PRIVATE]; return $properties;
Bộ điều khiển
Đối với logic nghiệp vụ, một lớp dịch vụ sẽ được chèn vào giữa các DAO và bộ điều khiển, nhưng để đơn giản, tôi đã để lại i ngay bây giờ. Nó có thể được thêm vào trong tương lai
Đối với bộ điều khiển, một lớp chính tồn tại.
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }5. Lớp này lấy một ví dụ về triển khai DAO cụ thể và có một chức năng.
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }6
Trong phương pháp này, các hoạt động CRUD được xác định
- Phương thức yêu cầu
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }
7 và tham số urlclass UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }
8 gọiclass UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }
9 - Phương thức yêu cầu
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }
7 và tham số urlpublic function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
1 trả về thực thể có id = 1 [bằng cách gọipublic function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
2] - Phương thức yêu cầu
public function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
3 và tham số urlpublic function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
4 gọipublic function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
5. Thực thể phải được gửi trong phần thân yêu cầu dưới dạng đối tượng json - Phương thức yêu cầu
public function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
3 và tham số urlpublic function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
7 gọipublic function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
8. Một lần nữa, thực thể phải ở trong phần thân yêu cầu - Phương thức yêu cầu
public function findAll[] { $query = "SELECT * FROM ".strtolower[$this->getEntityClass[]].";"; $stmt = $this->dbh->prepare[$query]; if [$stmt->execute[]] { $result = []; while [$row = $stmt->fetch[]] { array_push[$result, $this->mapToEntity[$row]]; } return $result; } return []; }
9 và tham số url$this->reflection = new ReflectionClass[$this->getEntityClass[]]; $properties = $this->reflection->getProperties[ReflectionProperty::IS_PRIVATE]; return $properties;
0 gọi$this->reflection = new ReflectionClass[$this->getEntityClass[]]; $properties = $this->reflection->getProperties[ReflectionProperty::IS_PRIVATE]; return $properties;
1 và xóa thực thể có id 1
Tiếp tục ví dụ về
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }1, bộ điều khiển sẽ như thế này
class UserDao extends GenericDao { protected function getEntityClass[] { return 'User'; } }6
Sau đó, bộ điều khiển có thể được gọi bằng url như thế này.
$this->reflection = new ReflectionClass[$this->getEntityClass[]]; $properties = $this->reflection->getProperties[ReflectionProperty::IS_PRIVATE]; return $properties;3
Tóm lược
Tất nhiên, đây không phải là cách an toàn, mạnh mẽ hoặc thậm chí hiệu quả nhất để thực hiện, nhưng nó cung cấp cho bạn các thao tác CRUD cơ bản ngay lập tức để bạn có thể tập trung vào giao diện người dùng và logic kinh doanh của mình mà không phải lãng phí thời gian vào