Chúng được cung cấp bởi khách hàng hoặc được lấy từ cơ sở dữ liệu phụ trợ, thao tác theo các quy tắc nghiệp vụ và tiếp tục tồn tại trở lại vào cơ sở dữ liệu.
Chúng ta hãy tìm hiểu về các mô hình và cách chúng tương tác với hệ thống back-end trong chương này.
Tạo mô hình
Trong PHP, mô hình đơn giản là lớp PHP mở rộng được xây dựng sẵn trong lớp Mô hình. Theo mặc định, các mô hình có thể được thêm tiền tố với Model_ tương tự như các bộ điều khiển và phải được đặt trong nhiên liệu / ứng dụng / lớp / mô hình / thư mục.Hãy để chúng tôi tạo ra một mô hình nhân viên cơ bản và mở rộng nó khi chúng tôi tiến hành.
nhiên liệu / ứng dụng / lớp / mô hình / employee.php
<?php namespace Model; class Model_Employee extends \Model { public static function fetchAll() { // Code to fetch employee from database } }
Truy cập Mô hình
Một khi mô hình được xác định, nó có thể được sử dụng một cách tự do trong bất kỳ bộ điều khiển nào chỉ bằng cách bao gồm nó trong bộ điều khiển như sau.use \Model\Employee; class Controller_Employee extends Controller { public function action_index() { $employees = Employee::fetchAll(); } }
Tổng quan cơ sở dữ liệu
Khóa Đào tạo lập trình PHP cung cấp lớp trừu tượng cơ sở dữ liệu của riêng nó để lấy dữ liệu từ cơ sở dữ liệu. Nó cung cấp cả cơ bản cũng như công cụ dựa trên ORM nâng cao. Bộ công cụ cơ bản bao gồm các lớp DB, DBUtil và Query_Builer. Bộ công cụ tiên tiến là Orm. Bộ công cụ Orm có nguồn gốc từ bộ công cụ cơ sở và được đóng gói như một gói riêng biệt.Cấu hình cơ sở dữ liệu
Khóa Đào tạo lập trình PHP tách cài đặt cơ sở dữ liệu khỏi tệp cấu hình chính và tệp là fuel / app / config / db.php . Nó hỗ trợ một thiết lập riêng cho từng môi trường. Hiện tại, PHP hỗ trợ các trình điều khiển MySQL, MySQLi và PDO. Cài đặt mẫu như sau:
<?php return array ( 'development' => array ( 'type' => 'mysqli', 'connection' => array ( 'hostname' => 'localhost', 'port' => '3306', 'database' => 'tutorialspoint_fueldb', 'username' => 'root', 'password' => 'password', 'persistent' => false, 'compress' => false, ), 'identifier' => '`', 'table_prefix' => '', 'charset' => 'utf8', 'enable_cache' => true, 'profiling' => false, 'readonly' => false, ), )
Bộ công cụ dựa trên DB
Lớp DB là tùy chọn đơn giản nhất để truy cập cơ sở dữ liệu từ ứng dụng. Nó cung cấp các tùy chọn để xây dựng truy vấn cơ sở dữ liệu, thực thi nó với cơ sở dữ liệu đích và cuối cùng lấy kết quả. Lớp DB tương tác với các lớp sau và cung cấp một API cơ sở dữ liệu toàn diện.Database_Connection - Singleton và lớp chính để tương tác với cơ sở dữ liệu
Database_Query - Lớp cơ sở, cụ thể để thực hiện truy vấn SQL và tìm nạp kết quả
Database_Query_Builder - Lớp cơ sở, trừu tượng để xây dựng truy vấn SQL
Database_Query_Builder_Join - Lớp để xây dựng các phép nối SQL
Database_Query_Builder_Where - Lớp trừu tượng để xây dựng các điều kiện truy vấn SQL
Database_Query_Builder_Select - Lớp bê tông để xây dựng truy vấn chọn SQL
Database_Query_Builder_Insert - Lớp trừu tượng để xây dựng truy vấn chèn SQL
Database_Query_Builder_Update - Lớp trừu tượng để xây dựng truy vấn cập nhật SQL
Database_Query_Builder_Delete - Lớp trừu tượng để xây dựng truy vấn xóa SQL
Sơ đồ sau đây mô tả mối quan hệ giữa các lớp và các phương thức được cung cấp bởi các lớp.
![]() |
| Đào tạo lập trình PHP |
API DB
Khóa Đào tạo lập trình PHP Hãy để chúng tôi tìm hiểu các phương pháp quan trọng nhất có sẵn trong lớp DB trong phần này.
Mục đích - Tạo và trả về cá thể Database_Connection mới .
Tham số
$ db - Tên kết nối cơ sở dữ liệu được định nghĩa trong tệp cấu hình, tùy chọn.
Trả về - Trả về đối tượng Database_Connection
$db = DB::instance(); $db = DB::instance('test');
truy vấn
Mục đích - Chuẩn bị câu lệnh SQL đã cung cấp và trả về đối tượng Database_Query, có thể được sử dụng để chèn, cập nhật, xóa hoặc tìm nạp dữ liệu từ cơ sở dữ liệu.Tham số
$ query - câu lệnh SQL, có thể chứa các phần giữ chỗ;
$ type - kiểu SQL, tùy chọn (DB :: SELECT, DB :: INSERT, DB :: CẬP NHẬT VÀ DB :: DELETE)
Trả về - Trả về đối tượng Database_Query
$query = DB::query('SELECT * FROM 'employees'');
last_query
Mục đích - Để nhận được truy vấn được thực thi cuối cùngTham số - Không
Trả về - Trả về truy vấn được thực thi cuối cùng
$employees = DB::Select('Select * from 'employee''); $sql = DB::last_query();
lựa chọn
Mục đích - Tạo phần chọn của truy vấnTham số
$ cột - Danh sách tên cột cơ sở dữ liệu
Trả về - Trả về đối tượng Database_Query_Builder_Select
$query = DB::select(); // Select * $query = DB::select('id', 'name'); // Select id, name
select_array (DB)
Nó tương tự như chọn ngoại trừ chúng ta có thể gửi cột dưới dạng mảng.$query = DB::select_array(array('id', 'name')); // Select id, name
chèn
Khóa Đào tạo lập trình PHP Mục đích - Tạo phần chèn của truy vấnTham số
$ table_name - tên của bảng cơ sở dữ liệu;
$ cột - mảng cột bảng
Trả về - Trả về đối tượng Database_Query_Builder_Insert
$query = DB::insert('employee'); // Insert into employee $query = DB::insert('employee', array('id', 'name')); // Insert into employee (id, name)
cập nhật
Mục đích - Tạo phần cập nhật của truy vấnTham số
$ table_name - tên của bảng cơ sở dữ liệu
Trả về - Trả về đối tượng Database_Query_Builder_Update
$query = DB::update('employee'); // update `employee`
xóa bỏ
Khóa Đào tạo lập trình PHP Mục đích - Tạo phần xóa của truy vấnTham số
$ table_name - tên của bảng cơ sở dữ liệu
Trả về - Trả về đối tượng Database_Query_Builder_Delete
$query = DB::delete('employee'); // delete from 'employee'
API truy vấn
Khóa Đào tạo lập trình PHP Database_Query cung cấp một tùy chọn để thiết lập kết nối cơ sở dữ liệu, thực hiện truy vấn và lấy kết quả là mảng hoặc đối tượng liên kết. Chúng ta hãy xem các phương thức được cung cấp bởi lớp Database_Query.set_connection
Mục đích - Để thiết lập cơ sở dữ liệu (chi tiết kết nối cơ sở dữ liệu) để thực hiện truy vấn
Tham số - $ db - tên kết nối cơ sở dữ liệu
Trả về - Trả về đối tượng Database_Query
$query = DB::query('DELETE * FROM employee', DB::DELETE); $query->set_connection('2nd-db');
param
Khóa Đào tạo lập trình PHP Mục đích - Để đặt giá trị của tham số được xác định trong đối tượng Truy vấnTham số
$ param - tên thông số;
$ value - giá trị của tham số
Trả về - Trả về đối tượng Database_Query
// set some variables $table = 'employee'; $id = 1; $name = 'Jon'; // don't use $query = DB::query('SELECT * FROM '.$table.'. WHERE id = '.$id.' AND name = "'.$name.'"'); // but use $query = DB::query('SELECT * FROM :tablename WHERE id = :id AND name = :name'); $query->param('tablename', 'employee'); $query->param('id', $id); $query->param('name', $name);
Phương pháp tương tự
các tham số là một đối tượng tương tự, ngoại trừ nó cung cấp tùy chọn để cung cấp cho nhiều giá trị cùng một lúc.$query->parameters (array( 'tablename' => $table, 'id' => $id, 'name' => $name });
trói buộc
Khóa Đào tạo lập trình PHP Mục đích - Để đặt một biến cho tham số được xác định trong đối tượng QueryTham số
$ param - tên thông số
$ var - biến để liên kết tham số với
Trả về - Trả về đối tượng Database_Query
// bind a query parameter $table = 'employee'; $query = DB::query('DELETE * FROM :tablename', DB::DELETE); $query->bind('tablename', $table); // update the variable $table = 'employee_salary'; // DELETE * FROM `employee_salary`; $sql = $query->compile();
biên dịch
Mục đích - Để biên dịch đối tượng truy vấn được định nghĩa trong truy vấn SQLTham số
$ db - chuỗi kết nối, tùy chọn
Trả về
// assign a value to a query parameter $table = 'employee'; $query = DB::query('DELETE * FROM :tablename', DB::DELETE); $query->param('tablename', $table); // compile the query, returns: DELETE * FROM employee $sql = $query->compile();
thi hành
Khóa Đào tạo lập trình PHP Mục đích - Để thực hiện truy vấn được xác định trong đối tượng Query và trả về kết quảTham số
$ db - tên kết nối cơ sở dữ liệu
Trả về - Trả về kết quả
// assign a value to a query parameter $table = 'employee'; $query = DB::query('DELETE * FROM :tablename', DB::DELETE); $query->param('tablename', $table); // execute the query $query->execute();
as_assoc
Mục đích - Để đặt kiểu trả về làm mảng kết hợp thay vì đối tượngTham số - Không
Trả về - Trả về đối tượng hiện tại
$query = DB::query('SELECT * FROM employee', DB::SELECT); $result = $query->as_assoc()->execute(); foreach ($result as $row) { echo $row['id']; }
as_object
Mục đích - Để đặt kiểu trả về làm đối tượng thay vì mảng kết hợpTham số - Không
Trả về - Trả về đối tượng hiện tại
$query = DB::query('SELECT * FROM employee', DB::SELECT); $result = $query->as_object()->execute(); foreach ($result as $row) { echo $row->id; } // have ORM model objects return instead $result = $query->as_object('Model_Employee')->execute();
API trình tạo truy vấn
Khóa Đào tạo lập trình PHP Các lớp dựa trên trình xây dựng truy vấn (Query_Builder) cung cấp các tùy chọn để xây dựng các truy vấn SQL động.Nó có bốn lớp, mỗi lớp để chọn (Query_Builder_Select) , chèn (Query_Builder_Insert) , cập nhật (Query_Builder_Update) và xóa (Query_Builder_Delete) truy vấn.
Các lớp này được bắt nguồn từ lớp Query_Builder_Where (tùy chọn tạo điều kiện), chính nó bắt nguồn từ Query_Builder , cơ sở của tất cả các lớp.
Chúng ta hãy xem xét các phương thức được cung cấp bởi lớp Query_Builder.
lựa chọn
Mục đích - Để tạo các cột của các truy vấn chọn lọc.
Tham số
$ cột - danh sách các cột, tùy chọn
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name') // select `name` $query = DB::select(array('first_name', 'name')) // select `first_name` as `name`
từ
Khóa Đào tạo lập trình PHP Mục đích - Để tạo chi tiết bảng của các truy vấn chọnTham số
$ tables - danh sách các bảng
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name')->from('employee') // select `name` from `employee`
Ở đâu
Khóa Đào tạo lập trình PHP Mục đích - Để tạo điều kiện chọn, chèn và cập nhật truy vấnTham số
$ cột - tên cột hoặc mảng ($ column, $ alias);
$ op - toán tử logic, =,! =, IN, GIỮA VÀ NHƯ, tùy chọn;
Giá trị $ - giá trị cột
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name')->from('employee') $query = $query->where('name', '=', 'Jon'); // select `name` from `employee` where `name` = `Jon`;
Phương pháp tương tự
Khóa Đào tạo lập trình PHP Các phương thức tương tự là where_open (), and_where_open (), or_where_open (), where_close (), and_where_close (), or_where_close ().Chúng tương tự như phương thức where () ngoại trừ việc chúng thêm các từ khóa và dấu ngoặc xung quanh các điều kiện. Sau đây là mã mẫu.
$query = DB::select('*')->from('employee'); $query->where('email', 'like', '%@gmail.com'); $query->or_where_open(); $query->where('name', 'Jon'); $query->and_where('surname', 'Peter'); $query->or_where_close(); // SELECT * FROM `employee` WHERE `email` LIKE "%gmail.com" OR (`name` = "Jon" AND `surname` = "Peter")
tham gia
Khóa Đào tạo lập trình PHP Mục đích - Để tạo các kết nối bảng của các truy vấn chọn lọcTham số
$ table - tên bảng hoặc mảng ($ table, $ alias);
$ type - loại tham gia (LEFT, RIGHT, INNER, v.v.)
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name')->from('employee')->join('employee_salary') // select `name` from `employee` JOIN `employee_salary`
trên
Khóa Đào tạo lập trình PHP Mục đích - Để tạo điều kiện tham gia trong các truy vấn chọn lọcTham số
$ c1 - tên bảng hoặc tên bảng có bí danh trong mảng;
$ op - toán tử logic;
$ c2 - tên bảng hoặc tên bảng có bí danh trong mảng
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name')->from('employee')->join('employee_salary') $query = $query->on('employee.employee_id', '=', 'employee_salary.employee_id') // select `name` from `employee` JOIN `employee_salary` on // `employee.employee_id` = `employee_salary.employee_id`
Phương pháp tương tự
Các phương thức liên quan là and_on () và or_on (). Chúng tương tự như trên () ngoại trừ việc chúng thêm từ khóa và dấu ngoặc xung quanh các kết nối.group_by
Khóa Đào tạo lập trình PHP Mục đích - Để tạo nhóm theo truy vấn
Tham số - cột $ - Tên cột để nhóm kết quả
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name')->from('employee') $query = $query->group_by('name'); // select `name` from `employee` group by `name`
đang có
Khóa Đào tạo lập trình PHP Mục đích - Để tạo nhóm theo các điều kiện của truy vấn SQLTham số - cột $ - tên cột hoặc mảng ($ column, $ alias); $ op - toán tử logic, =,! =, IN, GIỮA VÀ NHƯ, tùy chọn; Giá trị $ - giá trị cột
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name')->from('employee') $query = $query->group_by('name'); $query = $query->having('name', '!=', 'Jon'); // select `name` from `employee` group by `name` having `name` != `Jon`
Phương pháp tương tự
Khóa Đào tạo lập trình PHP Các phương thức tương tự là have_open (), and_having_open (), or_having_open (), having_close (), and_having_close (), or_having_close (). Chúng tương tự như các phương thức có () ngoại trừ việc chúng thêm các từ khóa và dấu ngoặc xung quanh các điều kiện.cài lại
Mục đích - Để đặt lại truy vấn
Tham số - Không
Trả về - Trả về phiên bản hiện tại
$query = DB::select('name')->from('employee') $query->reset() $query = DB::select('name')->from('employee_salary') // select `name` from `employee_salary`
Lớp DBUtil
Khóa Đào tạo lập trình PHP Lớp DBUtil cung cấp một tùy chọn để quản lý và thực hiện các hoạt động cơ sở dữ liệu thông thường. Một số phương pháp quan trọng như sau:set_connection - Đặt kết nối mặc định
DBUtil::set_connection('new_database');create_database - Tạo cơ sở dữ liệu.
DBUtil::create_database('my_database');drop_database - Thả một cơ sở dữ liệu.
DBUtil::drop_database('my_database');table_exists - Kiểm tra xem bảng đã tồn tại chưa.
if(DBUtil::table_exists('my_table')) { // Table exists } else { // Table does NOT exist, create it! }drop_table - Thả một bảng.
DBUtil::drop_table('my_table');create_table - Tạo một bảng.
\DBUtil::create_table ( 'users', array ( 'id' => array('type' => 'int', 'auto_increment' => true), 'name' => array('type' => 'text'), ), );
Bộ công cụ Orm
Khóa Đào tạo lập trình PHP cung cấp lớp cơ sở dữ liệu nâng cao bằng cách sử dụng khái niệm ORM dựa trên mẫu bản ghi Hoạt động phổ biến .Bộ công cụ được bao gồm trong ứng dụng nhưng không được định cấu hình theo mặc định. Nó được đóng gói như một gói và tên gói là orm.
Chúng ta có thể thêm cấu hình sau vào file cấu hình chính, fuel / app / config / config.php để tải bộ công cụ orm.
'always_load' => array ( 'packages' => array ( 'orm', ), ),
Tạo mô hình
Orm cung cấp lớp mô hình cơ sở Orm \ Model. Chúng ta cần mở rộng mô hình của chúng ta bằng mô hình orm để sử dụng các tính năng ORM. Sau đây là mã mẫu.class Model_Employee extends Orm\Model {}
Cấu hình
Khóa Đào tạo lập trình PHP Orm cung cấp một bộ cài đặt để định cấu hình mô hình để sử dụng các tính năng ORM. Chúng như sau:kết nối - Đặt thuộc tính tĩnh _connection trong mô hình để chỉ định tên kết nối.
class Model_Employee extends Orm\Model { protected static $_connection = "production"; }tên bảng - Đặt thuộc tính tĩnh _table_name trong mô hình để chỉ định tên bảng của bảng phụ trợ.
class Model_Employee extends Orm\Model { protected static $_table_name = 'employee'; }khóa chính - Đặt thuộc tính tĩnh _primary_key trong mô hình để chỉ định khóa chính của bảng phụ trợ.
class Model_Employee extends Orm\Model { protected static $_primary_key = array('id'); }Cột - Đặt thuộc tính _properties tĩnh trong mô hình để chỉ định các cột của bảng phụ trợ. Nó hỗ trợ data_type, nhãn, xác thực, hình thức elememts, vv
class Model_Employee extends Orm\Model { protected static $_properties = array ( 'id', 'name' => array ( 'data_type' => 'varchar', 'label' => 'Employee Name', 'validation' => array ( 'required', 'min_length' => array(3), 'max_length' > array(80) ), 'form' => array ( 'type' => 'text' ), ), 'age' => array ( 'data_type' => 'int', 'label' => 'Employee Age', 'validation' => array ( 'required', ), 'form' => array ( 'type' => 'text' ), ), ); }Điều kiện - Đặt thuộc tính _conditions tĩnh để đặt các điều kiện và thứ tự theo tùy chọn.
class Model_Employee extends Orm\Model { protected static $_conditions = array ( 'order_by' => array('id' => 'desc'), 'where' => array ( array('is_active', > true), ), ); }Quan sát viên - Orm cung cấp hệ thống sự kiện dựa trên người quan sát để thêm hành vi vào các sự kiện cụ thể.
Khóa Đào tạo lập trình PHP Để thêm hành vi, trước tiên hãy đặt thuộc tính _observers trong mô hình. Sau đó, xác định hành vi như một lớp và đặt nó trong thuộc tính _observers cùng với các sự kiện.
Nếu không có sự kiện nào được chỉ định, hành vi sẽ được gọi cho tất cả các sự kiện. Chúng tôi cũng có thể chỉ định nhiều hành vi.
class Model_Employee { protected static $_observers = array ( 'example', // will call Observer_Example class for all events 'Orm\\Observer_CreatedOn' => array ( 'events' => array('before_insert'), // will only call Orm\Observer_CreatedOn at before_insert event ) ); }
Tạo nên
Khóa Đào tạo lập trình PHP Khi chúng ta cấu hình mô hình, chúng ta có thể bắt đầu sử dụng các phương thức ngay lập tức. Orm cung cấp một phương thức lưu để lưu đối tượng vào cơ sở dữ liệu. Chúng ta có thể thiết lập dữ liệu bằng cách sử dụng các thuộc tính được cấu hình như sau:// option 1 $new = new Model_Employee(); $new->name = 'Jon'; $new->save(); // option 2, use forge instead of new $new = Model_Employee::forge(); $new->name = 'Jon'; $new->save(); // option 3, use array for properties $props = array('name' => 'Jon'); $new = Model_Employee::forge($props); $new>save();
Đọc
Khóa Đào tạo lập trình PHP Orm cung cấp một phương thức, tìm để lấy dữ liệu từ cơ sở dữ liệu và liên kết với đối tượng. phương thức tìm kiếm hoạt động tùy thuộc vào tham số đầu vào. Chúng ta hãy xem xét các tùy chọn khác nhaubằng khóa chính - Chỉ định khóa chính trả về bản ghi bằng cách khớp với khóa chính của bảng được định cấu hình.
$employee = Model_Employee::find(1);bản ghi đầu tiên / cuối cùng - Chỉ định 'đầu tiên' hoặc 'cuối cùng' sẽ tìm nạp bản ghi đầu tiên hoặc bản ghi cuối cùng tương ứng. Chúng tôi cũng có thể chuyển đơn đặt hàng theo tùy chọn.
$entry = Model_Employee::find('first'); $entry = Model_Article::find('last', array('order_by' => 'id'));Tất cả - Chỉ định 'tất cả' sẽ tìm nạp tất cả các bản ghi từ bảng được định cấu hình. Chúng tôi có thể chỉ định thứ tự theo tùy chọn cũng như điều kiện.
$entry = Model_Employee::find('all'); $entry = Model_Article::find ('all', array ( 'where' => array ( array ('name', 'Jon'), ), 'order_by' => array ('id' => 'desc'), ));Khóa Đào tạo lập trình PHP Chúng tôi có thể sử dụng API truy vấn của bộ công cụ cơ sở dữ liệu cơ bản cùng với mô hình cho tùy chọn tìm kiếm nâng cao như sau.
$query = Model_Employee::query()->where('category_id', 1)->order_by('date', 'desc'); $number_of_employees = $query->count(); $latest_employee = $query->max('id'); $young_employee = $query->min('age'); $newest_employee = $query->get_one(); $employees = $query->limit(15)->get();
Cập nhật
Khóa Đào tạo lập trình PHP Cập nhật mô hình cũng giống như tạo, ngoại trừ việc tạo mô hình mới, chỉ cần tìm nạp mô hình để được cập nhật bằng phương thức tìm, cập nhật thuộc tính và sau đó gọi phương thức lưu như sau.$entry = Model_Employee:find(4); $entry->name = 'Peter'; $entry->save();
Xóa bỏ
Orm cung cấp phương thức xóa để xóa mô hình. Chỉ cần tìm đối tượng và gọi phương thức xóa.$entry = Model_Employee:find(4); $entry->delete();
Ví dụ làm việc
Hãy tạo một ví dụ làm việc trong chương này để hiểu mô hình và cơ sở dữ liệu.Khóa Đào tạo lập trình PHP Tạo một cơ sở dữ liệu
Tạo một cơ sở dữ liệu mới trong máy chủ MySQL, sử dụng lệnh sau đây.
create database tutorialspoint_fueldb
Sau đó, tạo một bảng bên trong cơ sở dữ liệu bằng cách sử dụng lệnh sau đây.create table employee(id int primary key, name varchar(20), age int not null);
Cấu hình cơ sở dữ liệu
Chúng ta hãy cấu hình cơ sở dữ liệu bằng cách sử dụng tệp cấu hình cơ sở dữ liệu, * fuel / app / config / db.php. Thêm các thay đổi sau để kết nối máy chủ MySQL.<?php return array ( 'development' => array ( 'type' => 'mysqli', 'connection' => array ( 'hostname' => 'localhost', 'port' => '3306', 'database' => 'tutorialspoint_fueldb', 'username' => 'root', 'password' => 'pass', 'persistent' => false, 'compress' => false, ), 'identifier' => '`', 'table_prefix' => '', 'charset' => 'utf8', 'enable_cache' => true, 'profiling' => false, 'readonly' => false, ), 'production' => array ( 'type' => 'mysqli', 'connection' => array ( 'hostname' => 'localhost', 'port' => '3306', 'database' => 'tutorialspoint_fueldb', 'username' => 'root', 'password' => 'pass', 'persistent' => false, 'compress' => false, ), 'identifier' => '`', 'table_prefix' => '', 'charset' => 'utf8', 'enable_cache' => true, 'profiling' => false, 'readonly' => false, ), );
Bao gồm gói ORM
Khóa Đào tạo lập trình PHP. Cập nhật tệp cấu hình chính, fuel / app / config / config.php để bao gồm gói ORM bằng cách thêm cấu hình sau đây.'always_load' => array ( 'packages' => array ( 'orm' ), ),Bây giờ, ORM được bật trong ứng dụng của bạn
Tạo mô hình nhân viên
Tạo một mô hình mới, Nhân viên theo thư mục mô hình “nhiên liệu / ứng dụng / lớp / mô hình” . Nó được định nghĩa như sau.Employee.php
<?php class Model_Employee extends Orm\Model { protected static $_connection = 'production'; protected static $_table_name = 'employee'; protected static $_primary_key = array('id'); protected static $_properties = array ( 'id', 'name' => array ( 'data_type' => 'varchar', 'label' => 'Employee Name', 'form' => array ( 'type' => 'text' ), ), 'age' => array ( 'data_type' => 'int', 'label' => 'Employee Age', 'form' => array ( 'type' => 'text' ), ), ); }
Tạo hành động
Tạo hành động mới, action_model trong bộ điều khiển nhân viên nằm ở fuel / app / classes / controller / employee.php như sau.class Controller_Employee extends Controller { public function action_model() { // db based sql command to delete all employees $query = db::query('delete from `employee`'); $query->execute('production'); // orm based query to add new employees $model = new model_employee(); $model->name = "john"; $model->age = 25; $model->save(); $model = new model_employee(); $model->name = "peter"; $model->age = 20; $model->save(); // orm based query to fetch all employee data $data = array(); $data['emps'] = model_employee::find('all'); return response::forge(view::forge('employee/model', $data)); } }
Tạo chế độ xem
Bây giờ, hãy tạo một tệp tin view.php tại vị trí “fuel / app / views / employee” . Thêm các thay đổi sau vào tệp.<ul> <?php foreach($emps as $emp) { ?> <li><?php echo $emp['name']; ?></li> <?php } ?> </ul>

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