福哥更新了TFPHP框架的TFModel模型对象的insert、update、delete、upsert逻辑,适应了改造过的TFDO对象对应方法。
福哥将insert、update、delete、upsert几个主要方法的参数都设计成一样的了,都是通过实体对象数据来进行操作的了。
| $key | string | 模型映射物理表KEY |
| $table | string | 物理表名称 |
| $fields | array | 模型在物理表里面的主键或者约束 |
| $options | array | 其他选项:
|
public function __construct(TFPHP $tfphp){
parent::__construct($tfphp);
$this->addTable("user", "tfart_members", array('mId'=>"int"), array('lastInsertField'=>"mId"));
$this->addTable("userByName", "tfart_members", array('mName'=>"str"));
$this->addTable("userByEmail", "tfart_members", array('mEmail'=>"str"));
$this->addTable("user_profile", "tfart_member_profiles", array('mId'=>"int"));
$this->addTable("user_security_questions", "tfart_member_security_questions", array('mId'=>"int"), array('cache'=>false));
}| $table | string | 模型映射物理表KEY |
| $data | array | 模型实体数据 |
返回值是一个bool类型的值,插入成功了就真,否则就是假。通常情况下,插入失败了就会触发异常,所以可以根据异常信息判断错误原因。
$user = new user($this->tfphp);
try {
$user->insert("user", array(
'mName' => "福哥爱摄影",
'mPwd' => md5("123456")
));
var_dump($user->getLastInsertID("user"));
}
catch (Exception $e){
print_r($e->getMessage());
}
| $table | string | 模型映射物理表KEY |
| $data | array | 模型实体数据 |
返回值是一个bool类型的值,更新成功了就真,否则就是假。通常情况下,更新失败了就会触发异常,所以可以根据异常信息判断错误原因。
$user = new user($this->tfphp);
try {
$user->update("user", array(
'mId'=>2858,
'mEmail' => "fg-like-shoot@tongfu.net",
));
}
catch (Exception $e){
print_r($e->getMessage());
}| $table | string | 模型映射物理表KEY |
| $data | array | 模型实体数据 |
返回值是一个bool类型的值,删除成功了就真,否则就是假。通常情况下,删除失败了就会触发异常,所以可以根据异常信息判断错误原因。
try {
$user->delete("user", array(
'mId'=>2858,
));
}
catch (Exception $e){
print_r($e->getMessage());
}| $table | string | 模型映射物理表KEY |
| $data | array | 模型实体数据 |
返回值是一个bool类型的值,更新成功了就真,否则就是假。通常情况下,更新失败了就会触发异常,所以可以根据异常信息判断错误原因。
$user = new user($this->tfphp);
try {
$insertRet = $user->insert("user", array(
'mName'=>"福哥喜欢摄影"
));
if($insertRet){
$newUserId = $user->getLastInsertID("user");
if($newUserId > 0){
$user->upsert("user_profile", array(
'mId'=>$newUserId,
'nickName'=>"福哥喜欢摄影",
'birth'=>"2008-8-8"
));
print_r($user->getByTable("user", array($newUserId)));
print_r($user->getByTable("user_profile", array($newUserId)));
}
}
}
catch (Exception $e){
print_r($e->getMessage());
}
福哥今天分享了整理过的TFModel对象的代码,改造后的TFModel的insert、update、delete、upsert几个主要方法的参数都是一样的了,这个设计福哥借鉴了Spring data jpa的思路,全部都依赖一个实体对象的数据。
当然,PHP有处理实体对象不如使用万能的数组,所以福哥设置的参数类似的array类型。