cakephp错误:意外'(',期待')',是我的语法错了吗?

时间:2012-02-09 17:18:16

标签: syntax cakephp-2.0

你在这里看到任何语法错误吗?

'Coupon'=>array(
            'fields'=>array(
                'promo_code','desc'
            ),
            'conditions'=>array(
                        'OR'=>array(
                            'expires' =>0,
                            'Coupon.end_date >'=>date('Y-m-d')
                        )
            )
        ),

这是我控制器代码中'contains'数组的一部分。当我从我的代码中删除这个片段时,蛋糕效果很好(只有我需要这个部分!)。我发布了以下整个声明。帮助

public $paginate = array(
    'Location'=>array(
        'joins' => array(
             array( 
                'table' => 'locations_tags', 
                'alias' => 'LocationsTag', 
                'type' => 'inner',
                'conditions'=> array( 
                'LocationsTag.location_id = Location.id'
                )
            )
        ),
        'limit'=>9,
        'contain'=>array(
        'Course'=>array(
            'fields'=>array(
                'specials', 'contact','desc'
                ),
            'conditions'=>array('Course.active'=>1)
            ),
        'Charter'=>array(
            'fields'=>array(
                'book','specials', 'contact','desc'
                ),
            'conditions'=>array('Charter.active'=>1)
            ),
        'Restaurant'=>array(
            'fields'=>array(
                'menu','wine_list','specials', 'contact','desc'
                ),
            'conditions'=>array('Restaurant.active'=>1)
            ),
        'Nightclub'=>array(
            'fields'=>array(
                'menu','schedule','specials', 'contact','desc'
                ),
            'conditions'=>array('Nightclub.active'=>1)
            ),
        'Store'=>array(
            'fields'=>array(
                'catalog','specials', 'contact','desc'
                ),
            'conditions'=>array('Store.active'=>1)
            ),
        'Coupon'=>array(
            'fields'=>array(
                'promo_code','desc'
            ),
            'conditions'=>array(
                        'OR'=>array(
                            'expires' =>0,
                            'Coupon.end_date >'=>date('Y-m-d')
                        )
            )
        ),
        'Image',
        'Tag'=>array(
            'fields'=>array(
                'seo_tag'
            )
            )
        )
    )
);

1 个答案:

答案 0 :(得分:2)

        'Coupon.end_date >'=>date('Y-m-d')

您无法在类属性声明中分配计算值(例如,调用函数)。它们必须是恒定的值。

对于计算值,您必须在构造函数中指定它。

来自the docs

  

此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。