信息不足!“里面的条件都是属性名而不是字段名,是类名而不是表名”
$filter可以是数组
奇数元素为条件表达式
偶数元素为表达式的连接关系处理时通过一系列的方法过滤数据进一步可书写成字符串格式,通过解释程序处理成上述的表达式数组

解决方案 »

  1.   

    $filter用array()类型传递,$key为条件表达式,$val为表达式的连接关系,如唠叨所说
      

  2.   

    连接关系已经另外处理$filter->addFilter('Author::name=="XiaoWang"');??
    $filter->addFilter('Author.name="XiaoWang"');??
    或者其他形式???
      

  3.   

    是的
    $dataSet=$manager->getList(array(
    'Author::name=="XiaoWang"',
    'Author.name="XiaoWang"'
    ));
      

  4.   

    不过那样的话用户使用字符串值就不太方便
    $filter->add('Author::name','==',"XiaoWang"');
    这样呢?
      

  5.   

    或者像这样的?
    $filter->add(Condition::eq('Author::name',"XiaoWang"));
      

  6.   

    $filter->add( "Author.name=XiaoWang" );
    这种感觉比较直接
      

  7.   

    其实这取决于你是否打算提供这样的格式
    'Author::name=="XiaoWang" and Author::pass=="1234"'
    由于存在表达式的解析问题,所以应选择可以用最简单的方法拆分表达式的参数传递方式
      

  8.   

    其实是想到了一个问题
    比如有一个$_POST['user']='xiaowang';
    然后该怎么用呢?
    如果是$filter->add( "Author.name=XiaoWang" );,用户还要自己处理转义
      

  9.   

    $filter是对象,所以转义处理应该由类实例化的时候自动进行
    或感知到参数取自http传递变量时自动进行
      

  10.   

    这个怎么感知呢
    "Author.name='$name'"
    'Author.name="'.$name.'"'??
    不管怎么样总会有点麻烦
    $filter->add(Condition::eq('Author::name',"XiaoWang"));
    hibernate里差不多就是这样。不过感觉很怪
      

  11.   

    $filter->add( $field, $value, $condition) ;
    这样行不