condition 烦恼

#1 韦人上一

var $linker = array(        
        array(
            'type' => 'hasmany',   // 一对多关联
            'map' => 'sfinish',    // 关联的标识
            'mapkey' => 'id',
            'fclass' => 'u_order',
            'fkey' => 'u_id',         
            'condition' => array('state'=>"已完成", 'odate' =>date('Ymd')),
            'enabled' => true
        ),        
    );

运行程序报错,
如果写成 'condition' => array('state'=>"已完成", 'odate' =>'2012-01-01'),则程序正常,不得其解,烦恼中

2012-07-24 14:24:36

#2 jake

PHP的类成员变量,在定义阶段是不能使用函数的。也就是说
class abc
{
var $my = date('Ymd');
}
这种做法是会语法出错的。

上面的问题,可以这样做,首先不对那个值赋值(先等于0之类的吧),等在使用spLinker前,通过
$obj->linker[0]['condition']['odate'] = date('Ymd');
再用spLinker就行。

2012-07-24 14:38:12

#3 韦人上一

jake 发表于 2012-7-24 14:38
PHP的类成员变量,在定义阶段是不能使用函数的。也就是说
class abc
{
在controller中这样写$sfinish->linker[0]['condition'] = array('state'=>"已完成", 'odate' =>date('Ymd'));正常,
在model中怎么写????
class sfinish extends spModel{
    public $pk = 'id';
    public $table = 'user';
  //public $odate ;
    var $linker = array(        
        array(
            'type' => 'hasmany',   // 一对多关联
            'map' => 'sfinish',    // 关联的标识
            'mapkey' => 'id',
            'fclass' => 'u_order',
            'fkey' => 'u_id',         
            'condition' => array('state'=>"已完成", 'odate' =>date('Ymd')),   //   <--这里怎么写???
            'enabled' => true
        ),        
    );
}

2012-07-24 15:05:00

#4 jake

请仔细看我的回帖,PHP的语法规定,在类的成员变量初试的时候,不能用函数赋值!

也就是你标红那个地方,PHP语法规定是不能写函数date的!

2012-07-24 15:33:04

#5 韦人上一

非常感谢

2012-07-24 21:56:20