FuelPHP - Mô hình & Cơ sở dữ liệu
Mô hình đóng một vai trò quan trọng trong khuôn khổ web FuelPHP. Nó đại diện cho các thực thể kinh doanh của ứng dụng. Chúng được cung cấp bởi khách hàng hoặc được tìm nạp từ cơ sở dữ liệu phụ trợ, được thao tác theo các quy tắc nghiệp vụ và vẫn tồn tại trở lại cơ sở dữ liệu. Hãy để chúng tôi 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 FuelPHP, mô hình chỉ đơn giản là lớp PHP đơn giản mở rộng lớp Mô hình tích hợp sẵn. Theo mặc định, các mô hình có thể có tiền tố là Model_ tương tự như bộ điều khiển và phải được đặt trongfuel/app/classes/model/thư mục. Hãy để chúng tôi tạo một mô hình nhân viên cơ bản và mở rộng nó khi chúng tôi tiếp tục.
Nhiên liệu / ứng dụng / lớp học / mô hình / nhân viên.php
<?php
namespace Model;
class Model_Employee extends \Model {
public static function fetchAll() {
// Code to fetch employee from database
}
}
Truy cập một Mô hình
Khi một mô hình được xác định, nó có thể được sử dụng tự do trong bất kỳ bộ điều khiển nào chỉ bằng cách đưa nó vào 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 về cơ sở dữ liệu
FuelPHP cung cấp lớp trừu tượng cơ sở dữ liệu của riêng mình để lấy dữ liệu từ cơ sở dữ liệu. Nó cung cấp cả công cụ dựa trên ORM cơ bản cũng như nâng cao. Bộ công cụ cơ bản bao gồm các lớp dựa trên DB, DBUtil và Query_Builer. Bộ công cụ nâng cao 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
FuelPHP tách các 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 cài đặt riêng cho từng môi trường. Hiện tại, FuelPHP hỗ trợ 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
Các DB classlà 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ó dựa trên cơ sở dữ liệu đích và cuối cùng là tìm nạp 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 cụ thể để 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.
API DB
Chúng ta hãy tìm hiểu các phương thức quan trọng nhất có sẵn trong lớp DB trong phần này.
ví dụ
Purpose- Tạo và trả về thể hiện Database_Connection mới .
Parameter -
$db - Tên kết nối cơ sở dữ liệu được xác định trong tệp cấu hình, tùy chọn.
Returns- Trả về đối tượng Database_Connection
Ví dụ,
$db = DB::instance();
$db = DB::instance('test');
truy vấn
Purpose - Chuẩn bị câu lệnh SQL được cung cấp và trả về đối tượng Database_Query, đối tượng này 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.
Parameter -
$query - Câu lệnh SQL, có thể chứa trình giữ chỗ;
$type - Kiểu SQL, tùy chọn (DB :: SELECT, DB :: INSERT, DB :: UPDATE và DB :: DELETE)
Returns- Trả về đối tượng Database_Query
Ví dụ,
$query = DB::query('SELECT * FROM 'employees'');
last_query
Purpose - Để nhận được truy vấn được thực thi cuối cùng
Parameter - Không có
Returns - Trả về truy vấn được thực thi cuối cùng
Ví dụ,
$employees = DB::Select('Select * from 'employee'');
$sql = DB::last_query();
lựa chọn
Purpose - Tạo phần chọn của truy vấn
Parameter -
$columns - Danh sách tên cột cơ sở dữ liệu
Returns - Trả về đối tượng Database_Query_Builder_Select
Ví dụ,
$query = DB::select(); // Select *
$query = DB::select('id', 'name'); // Select id, name
select_array (DB)
Tương tự như select ngoại trừ chúng ta có thể gửi các cột dưới dạng mảng.
$query = DB::select_array(array('id', 'name')); // Select id, name
chèn
Purpose - Tạo phần chèn của truy vấn
Parameter -
$table_name - tên của bảng cơ sở dữ liệu;
$columns - mảng các cột trong bảng
Returns - Trả về đối tượng Database_Query_Builder_Insert
Ví dụ,
$query = DB::insert('employee'); // Insert into employee
$query = DB::insert('employee', array('id', 'name')); // Insert into employee (id, name)
cập nhật
Purpose - Tạo phần cập nhật của truy vấn
Parameter -
$table_name - tên của bảng cơ sở dữ liệu
Returns - Trả về đối tượng Database_Query_Builder_Update
Ví dụ,
$query = DB::update('employee'); // update `employee`
xóa bỏ
Purpose - Tạo phần xóa của truy vấn
Parameter -
$table_name - tên của bảng cơ sở dữ liệu
Returns - Trả về đối tượng Database_Query_Builder_Delete
Ví dụ
$query = DB::delete('employee'); // delete from 'employee'
API truy vấn
Database_Querycung 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à tìm nạp kết quả dưới dạng mảng hoặc đối tượng liên kết. Hãy để chúng tôi xem các phương thức được cung cấp bởi lớp Database_Query.
set_connection
Purpose - Để đặt cơ sở dữ liệu (chi tiết kết nối cơ sở dữ liệu) để thực thi truy vấn
Parameter - $ db - tên kết nối cơ sở dữ liệu
Returns- Trả về đối tượng Database_Query
Ví dụ,
$query = DB::query('DELETE * FROM employee', DB::DELETE);
$query->set_connection('2nd-db');
param
Purpose - Để đặt giá trị của tham số được xác định trong đối tượng Truy vấn
Parameter -
$param - tên tham số;
$value - giá trị của tham số
Returns- Trả về đối tượng Database_Query
Ví dụ,
// 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ự
parameters là một đối tượng tương tự ngoại trừ nó cung cấp tùy chọn để cung cấp nhiều giá trị cùng một lúc.
$query->parameters (array(
'tablename' => $table,
'id' => $id,
'name' => $name
});
trói buộc
Purpose - Đặt một biến thành tham số được xác định trong đối tượng Truy vấn
Parameter -
$param - tên tham số
$var - biến để liên kết tham số với
Returns- Trả về đối tượng Database_Query
Ví dụ,
// 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
Purpose - Để biên dịch đối tượng truy vấn được xác định thành truy vấn SQL
Parameter -
$db - chuỗi kết nối, tùy chọn
Returns -
Ví dụ,
// 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();
hành hình
Purpose - Để thực hiện truy vấn được xác định trong đối tượng Truy vấn và trả về kết quả
Parameter -
$db - tên kết nối cơ sở dữ liệu
Returns - Trả về kết quả
Ví dụ,
// 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
Purpose - Đặt kiểu trả về là mảng kết hợp thay vì đối tượng
Parameter - Không có
Returns - Trả về đối tượng hiện tại
Ví dụ,
$query = DB::query('SELECT * FROM employee', DB::SELECT);
$result = $query->as_assoc()->execute();
foreach ($result as $row) {
echo $row['id'];
}
as_object
Purpose - Đặt kiểu trả về là đối tượng thay vì mảng kết hợp
Parameter - Không có
Returns - Trả về đối tượng hiện tại
Ví dụ,
$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
Các lớp dựa trên trình tạo truy vấn (Query_Builder) cung cấp các tùy chọn để tạo 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) các truy vấn. Các lớp này có nguồn gốc từ lớp Query_Builder_Where (tùy chọn tạo điều kiện), bản thân lớp này có nguồn gốc 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
Purpose - Để tạo các cột của các truy vấn đã chọn.
Parameter -
$columns - danh sách các cột, tùy chọn
Returns - Trả về phiên bản hiện tại
Ví dụ,
$query = DB::select('name') // select `name`
$query = DB::select(array('first_name', 'name')) // select `first_name` as `name`
từ
Purpose - Để tạo bảng chi tiết của các truy vấn được chọn
Parameter -
$tables - danh sách các bảng
Returns - Trả về phiên bản hiện tại
Ví dụ,
$query = DB::select('name')->from('employee') // select `name` from `employee`
Ở đâu
Purpose - Để tạo các điều kiện của các truy vấn chọn, chèn và cập nhật
Parameters -
$column - tên cột hoặc mảng ($ column, $ alias);
$op - các toán tử logic, =,! =, IN, BETWEEN và LIKE, tùy chọn;
$value - giá trị cột
Returns - Trả về phiên bản hiện tại
Ví dụ,
$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ự
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ư các phương thức where () ngoại trừ việc chúng thêm các từ khóa và dấu ngoặc nhọn xung quanh các điều kiện. Sau đây là một 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
Purpose - Để tạo kết hợp bảng của các truy vấn được chọn
Parameters -
$table - tên bảng hoặc mảng ($ table, $ alias);
$type - kiểu tham gia (LEFT, RIGHT, INNER, v.v.,)
Returns - Trả về phiên bản hiện tại
Thí dụ
$query = DB::select('name')->from('employee')->join('employee_salary')
// select `name` from `employee` JOIN `employee_salary`
trên
Purpose - Để tạo điều kiện kết hợp trong các truy vấn được chọn
Parameters -
$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
Returns - Trả về phiên bản hiện tại
Ví dụ,
$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ư on () ngoại trừ việc chúng thêm từ khóa và dấu ngoặc nhọn xung quanh các phép nối.
group_by
Purpose - Để tạo nhóm theo truy vấn
Parameter - $columns - Tên cột để nhóm kết quả
Returns - Trả về phiên bản hiện tại
Ví dụ,
$query = DB::select('name')->from('employee')
$query = $query->group_by('name');
// select `name` from `employee` group by `name`
đang có
Purpose - Để tạo nhóm theo điều kiện của truy vấn SQL
Parameter - $column - tên cột hoặc mảng ($ column, $ alias); $op - các toán tử logic, =,! =, IN, BETWEEN và LIKE, tùy chọn; $value - giá trị cột
Returns - Trả về phiên bản hiện tại
Thí dụ
$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ự
Các phương thức tương tự là have_open (), and_having_open (), or_having_open (), have_close (), and_having_close (), or_having_close (). Chúng tương tự như các phương thức have () ngoại trừ việc chúng thêm các từ khóa và dấu ngoặc nhọn xung quanh các điều kiện.
cài lại
Purpose - Để đặt lại truy vấn
Parameter - Không có
Returns - Trả về phiên bản hiện tại
Ví dụ,
$query = DB::select('name')->from('employee')
$query->reset()
$query = DB::select('name')->from('employee_salary')
// select `name` from `employee_salary`
Lớp DBUtil
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 - Đánh rơi cơ sở dữ liệu.
DBUtil::drop_database('my_database');
- table_exists - Kiểm tra xem một bảng nhất định có tồn tại hay không.
if(DBUtil::table_exists('my_table')) {
// Table exists
} else {
// Table does NOT exist, create it!
}
- drop_table - Làm rơi 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
FuelPHP cung cấp lớp cơ sở dữ liệu nâng cao sử dụng khái niệm ORM dựa trên Active record pattern. Bộ công cụ được bao gồm trong ứng dụng nhưng không được cấu hình theo mặc định. Nó được đóng gói dưới dạng một gói và tên gói là orm. Chúng tôi có thể thêm cấu hình sau vào tệp 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 tôi cần mở rộng mô hình của mình với mô hình orm để sử dụng các tính năng ORM. Sau đây là một mã mẫu.
class Model_Employee extends Orm\Model {}
Cấu hình
Orm cung cấp một bộ cài đặt để cấu hình mô hình sử dụng các tính năng ORM. Chúng như sau:
connection- Đặt thuộc tính _connection tĩnh trong mô hình để chỉ định tên kết nối.
class Model_Employee extends Orm\Model {
protected static $_connection = "production";
}
table name- Đặt thuộc tính static _table_name trong model để chỉ định tên bảng của bảng phụ trợ.
class Model_Employee extends Orm\Model {
protected static $_table_name = 'employee';
}
primary key- Đặt thuộc tính _primary_key tĩnh 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');
}
Columns- Đặ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, label, validation, form elememts, v.v.
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'
),
),
);
}
Conditions- Đặt thuộc tính static _conditions để thiết lập các điều kiện và sắp xếp theo các 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),
),
);
}
Observers- 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ể. Để thêm một 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
Khi chúng tôi cấu hình mô hình, chúng tôi có thể bắt đầu sử dụng các phương pháp 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ể đặt dữ liệu bằng cách sử dụng các thuộc tính đã định 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
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ào đối tượng. phương thức tìm hoạt động tùy thuộc vào tham số đầu vào. Hãy để chúng tôi xem xét các tùy chọn khác nhau -
by primary key - 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 cấu hình.
$employee = Model_Employee::find(1);
first / last record- 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 hàng theo tùy chọn.
$entry = Model_Employee::find('first');
$entry = Model_Article::find('last', array('order_by' => 'id'));
All- Chỉ định 'tất cả' sẽ lấy tất cả các bản ghi từ bảng đã 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'),
));
Chúng ta 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
Cập nhật mô hình cũng giống như tạo, ngoại trừ thay vì tạo một mô hình mới, chỉ cần tìm nạp mô hình cần cập nhật bằng phương thức find, 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 pháp xóa để xóa mô hình. Chỉ cần tìm nạp đố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.
Tạo cơ sở dữ liệu
Tạo cơ sở dữ liệu mới trong máy chủ MySQL, sử dụng lệnh sau.
create database tutorialspoint_fueldb
Sau đó, tạo một bảng bên trong cơ sở dữ liệu bằng lệnh sau.
create table employee(id int primary key, name varchar(20), age int not null);
Định cấu hình cơ sở dữ liệu
Hãy để chúng tôi định 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
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.
'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 trong thư mục mô hình “fuel/app/classes/model”. 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 đặt tại 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 dạng xem model.php Đặt vị trí tại “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>
Bây giờ, hãy yêu cầu URL, http://localhost:8080/employee/model và nó sẽ tạo ra kết quả sau.