征求一下意见~~~

-神仙- 2006-01-23 09:27:59
在弄一个ORM。
取一个数据集的时候大致是这样。
$dataSet=$manager->getList($filter);
需要一个过滤条件,相当于select语句的where子句
在考虑这个filter怎么设计
出于一致性,里面的条件都是属性名而不是字段名,是类名而不是表名。
...全文
301 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
-神仙- 2006-01-26
  • 打赏
  • 举报
回复
顶一下
ice_berg16 2006-01-26
  • 打赏
  • 举报
回复
$filter->add( $field, $value, $condition) ;
这样行不
ice_berg16 2006-01-25
  • 打赏
  • 举报
回复
$filter->add( "Author.name=XiaoWang" );
这种感觉比较直接
xuzuning 2006-01-25
  • 打赏
  • 举报
回复
其实这取决于你是否打算提供这样的格式
'Author::name=="XiaoWang" and Author::pass=="1234"'
由于存在表达式的解析问题,所以应选择可以用最简单的方法拆分表达式的参数传递方式

-神仙- 2006-01-25
  • 打赏
  • 举报
回复
这个怎么感知呢
"Author.name='$name'"
'Author.name="'.$name.'"'??
不管怎么样总会有点麻烦
$filter->add(Condition::eq('Author::name',"XiaoWang"));
hibernate里差不多就是这样。不过感觉很怪
xuzuning 2006-01-25
  • 打赏
  • 举报
回复
$filter是对象,所以转义处理应该由类实例化的时候自动进行
或感知到参数取自http传递变量时自动进行
-神仙- 2006-01-25
  • 打赏
  • 举报
回复
其实是想到了一个问题
比如有一个$_POST['user']='xiaowang';
然后该怎么用呢?
如果是$filter->add( "Author.name=XiaoWang" );,用户还要自己处理转义
-神仙- 2006-01-24
  • 打赏
  • 举报
回复
连接关系已经另外处理

$filter->addFilter('Author::name=="XiaoWang"');??
$filter->addFilter('Author.name="XiaoWang"');??
或者其他形式???
xuefengal 2006-01-24
  • 打赏
  • 举报
回复
$filter用array()类型传递,$key为条件表达式,$val为表达式的连接关系,如唠叨所说
johnpanq 2006-01-24
  • 打赏
  • 举报
回复
学习
xuzuning 2006-01-24
  • 打赏
  • 举报
回复
信息不足!

“里面的条件都是属性名而不是字段名,是类名而不是表名”
$filter可以是数组
奇数元素为条件表达式
偶数元素为表达式的连接关系

处理时通过一系列的方法过滤数据

进一步可书写成字符串格式,通过解释程序处理成上述的表达式数组
-神仙- 2006-01-24
  • 打赏
  • 举报
回复
或者像这样的?
$filter->add(Condition::eq('Author::name',"XiaoWang"));
-神仙- 2006-01-24
  • 打赏
  • 举报
回复
不过那样的话用户使用字符串值就不太方便
$filter->add('Author::name','==',"XiaoWang"');
这样呢?
xuzuning 2006-01-24
  • 打赏
  • 举报
回复
是的
$dataSet=$manager->getList(array(
'Author::name=="XiaoWang"',
'Author.name="XiaoWang"'
));
挑大梁 2006-01-23
  • 打赏
  • 举报
回复
支持

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧