介绍
介绍
福哥更新了TFPHP框架的TFModel模型对象的insert、update、delete、upsert逻辑,适应了改造过的TFDO对象对应方法。
福哥将insert、update、delete、upsert几个主要方法的参数都设计成一样的了,都是通过实体对象数据来进行操作的了。
TFModel
addTable
参数
$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)); }
insert
参数
$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()); }
update
参数
$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()); }
delete
参数
$table | string | 模型映射物理表KEY |
$data | array | 模型实体数据 |
返回值
返回值是一个bool类型的值,删除成功了就真,否则就是假。通常情况下,删除失败了就会触发异常,所以可以根据异常信息判断错误原因。
示例
try { $user->delete("user", array( 'mId'=>2858, )); } catch (Exception $e){ print_r($e->getMessage()); }
upsert
参数
$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类型。