PHP 如何在CodeIgniter中编写更好的模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 如何在CodeIgniter中编写更好的模型相关的知识,希望对你有一定的参考价值。
<?php if (!defined('BASEPATH')) exit('No direct script access');
class Users_model extends Model {
var $table = 'users';
function __construct() {
parent::Model();
}
function Users_model() {
parent::Model();
}
function add_user($options = array()) {
if(!$this->_required(array('email', 'password'), $options))
return false;
$options = $this->_default(array('status' => 'active'), $options);
$qualificationArray = array('email', 'username', 'status');
foreach($qualificationArray as $qualifier) {
if (isset($options[$qualifier]))
$this->db->set($qualifier, $options[$qualifier]);
}
if (isset($options['password']))
$this->db->set('password', md5($options['password']));
$this->db->insert($this->table);
return $this->db->insert_id();
}
function update_user($options = array()) {
if(!$this->_required(array('email'), $options))
return false;
$qualificationArray = array('email', 'username', 'status');
foreach($qualificationArray as $qualifier) {
if (isset($options[$qualifier]))
$this->db->set($qualifier, $options[$qualifier]);
}
$this->db->where('email', $options['email']);
if(isset($options['password']))
$this->db->set('password', md5($options['password']));
$this->db->update($this->table);
return $this->db->affected_rows();
}
function get_users($options = array()) {
$options = $this->_default(array('sort_direction' => 'asc'), $options);
$qualificationArray = array('email', 'status');
foreach($qualificationArray as $qualifier) {
if (isset($options[$qualifier]))
$this->db->where($qualifier, $options[$qualifier]);
}
if (isset($options['limit']) && isset($options['offset']))
$this->db->limit($options['limit'], $options['offset']);
else if (isset($options['limit']))
$this->db->limit($options['limit']);
if (isset($options['sort_by']))
$this->db->order_by($options['sort_by'], $options['sort_direction']);
$query = $this->db->get($this->table);
if ($query->num_rows() == 0)
return false;
if (isset($options['email'])) {
return $query->row(0);
} else {
return $query->result();
}
}
function delete_user($options = array()) {
if(!$this->_required(array('email'), $options))
return false;
$this->db->where('email', $options['email']);
$this->db->delete($this->table);
}
function _required($required, $data) {
foreach($required as $field)
if (!isset($data[$field]))
return false;
return true;
}
function _default($defaults, $options) {
return array_merge($defaults, $options);
}
}
以上是关于PHP 如何在CodeIgniter中编写更好的模型的主要内容,如果未能解决你的问题,请参考以下文章
PHP 框架哪个更好一点?CodeIgniter 怎么样
PHP 框架哪个更好一点?CodeIgniter 怎么样?
可以在 CodeIgniter 视图中将 Javascript 或 jQuery 代码编写为 PHP 文件吗?
没有 jquery ui 的 php 和 codeigniter 自动完成是不是有更好的(轻量级)解决方案?
codeigniter 中的安全性
CodeIgniter / PHP:如何在 .php 视图页面中获取 URI