Ошибка CakePHP: неожиданный '(', ожидающий ')', мой синтаксис неверен? - PullRequest
0 голосов
/ 09 февраля 2012

Вы видите здесь какие-либо синтаксические ошибки?

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

Это часть моего массива'tain 'в коде моего контроллера.Когда я удаляю этот фрагмент из своего кода, торт отлично работает (только эта часть мне нужна!).Выкладываю полное заявление ниже.Помощь?

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 Ответ

2 голосов
/ 09 февраля 2012
        'Coupon.end_date >'=>date('Y-m-d')

Вы не можете назначать вычисляемые значения (например, вызывающие функции) в объявлениях свойств класса.Они должны быть постоянными значениями.

Для вычисленного значения вам необходимо присвоить его в конструкторе или что-то в этом роде.

Из документов :

Это объявление может включать в себя инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть в состоянии быть оцененной во время компиляции и не должна зависеть от информации времени выполнения для оценки.

...