phalcon Model模型的基本使用与常用操作(增删改查)
phalcon模型命名方式使用驼峰法,主要是用来跟数据库交互,应用程序中的大部分业务逻辑都将集中在模型里,l这里把常用的模型操作做下笔记,phalcon框架的模型方式和框架提供的一些常用操作方法。新建一个模型app/models/Rebots.php<?phpclass Rebots extends \Phalcon\Mvc\Model{// 官方建议在模型中预先定义好所有的列,这样可以
·
phalcon模型命名方式使用驼峰法,主要是用来跟数据库交互,应用程序中的大部分业务逻辑都将集中在模型里,l这里把常用的模型操作做下笔记,phalcon框架的模型方式和框架提供的一些常用操作方法。
新建一个模型app/models/Rebots.php
class Rebots extends \Phalcon\Mvc\Model
{
// 官方建议在模型中预先定义好所有的列,这样可以减少模型内存的开销以及内存分配。
public $id;
public $name;
public $type;
public $year;
// initizelize 在请求期间仅会被自动调用一次,目的是为模型实例进行初始化
public function initialize()
{
// setSource()方法指定数据库表
$this->setSource('rebots');
}
/**
*
* 获取一条记录
* 接受关联数组作为查询条件:
* @param $condition int|array 比如 id=1;
* 参数说明: 比如 array("name='张三'")
*
* @return \Phalcon\Mvc\Model 返回一个模型实例
*/
public function getFirst($condition)
{
return $this->findFirst($condition);
}
/**
* 获取多条记录
* 接受关联数组作为查询条件:
* @param $conditoin string|array
*说明:
* 1: 没有条件获取所有记录
*
* 2: 字符串 name='张三' 获取name等于张三的记录
*
* 3: ["id < 5", 'order' => 'id desc', 'limit' => 10]
*
* 4: 如果需要通过外部数据(比如用户输入)或变量来查询记录,
* 则必须要用`Binding Parameters`(绑定参数)的方式来防止SQL注入.
* ["id < ':id:'",
'limit' => 10,
'bind'=>5]
*
* 5:绑定参数类型
'bind' => ['id' => 5],
['bindTypes' => ['id' => \Phalcon\Db\Column::BIND_PARAM_INT]]]
* @return \Phalcon\Mvc\ResultsetInterface
*/
public function getMoreData($conditoin='')
{
return $this->find($conditoin);
}
/**
* 查询后置方法
* 获取记录的初始化以及准备
* 从数据库中获取了一条记录之后,自动调用,可以为某些字段做处理
*
*/
public function afterFetch()
{
$this->name = explode(' ', $this->name);
}
// 在调用save方法之前调用
public function beforeSave()
{
$this->name = 'before Save';
}
// 在调用save方法之后调用
public function afterSave()
{
$this->name = 'after save';
}
/**
*更新数据/插入数据
*$data = array(); 需要更新的数据
*update更新数据
*save 更新/插入
*/
public function updateRecord($data=array())
{
// update方法更新一条语句,会根据id自动更新对应的纪录
$data = array(
'id' => 9,
'name' => '张三',
'age' => '18',
'address' => 'beijing'
);
$this->update($data);
// save 方法可以更新和修改, 如果data数组中存在id,就更新,没有id就自动插入,第二个字断是一个数组,可以指定更新的字断
$data = array(
'id' => 10,
'name' => '张三',
'age' => '18',
'address' => 'beijing'
);
// 插入
$this->save($data);
// 更新
$data = array(
'id' => 10,
'name' => '张三',
'age' => '18',
'address' => 'beijing'
);
$this->save($data);
}
/**
*更新前置操作
*调用update方法之前调用
*/
public function beforeUpdate()
{
}
/**
*
* 删除一条记录
* return bool
*/
public function deleteSecord(){
$userTest = $this->findFirst(9);
return $userTest->delete();
}
}
更多推荐
所有评论(0)