Добавить функцию PHP в массив модели CakePHP

0

У меня есть массив поведения $ actas.Problem, когда я добавляю функцию date() в строку массива, она возвращает ошибку:

Пример:

public $actas = array(
'Uploader.Attachment'=>array( 
      'books' => array(
            'maxWidth' => 1200,
            'maxHeight' => 1200,
            'extension' => array('pdf'),
            'nameCallback' => '',
            'append' => '',
            'prepend' => '',
            'tempDir' => TMP,
            'uploadDir' => '/var/www/html/apps/webroot/files/uploads/books' . date('d-m-Y'),//this  is where I want to add the function.
            'transportDir' => ''
            )
       )
   );

однако он не работает. Мне также нравится:

 public $actas = array(
    'Uploader.Attachment'=>array( 
          'books' => array(
                'maxWidth' => 1200,
                'maxHeight' => 1200,
                'extension' => array('pdf'),
                'nameCallback' => '',
                'append' => '',
                'prepend' => '',
                'tempDir' => TMP,
                'uploadDir' => "/var/www/html/apps/webroot/files/uploads/books'".date('d-m-Y')."'",//this  is where I want to add the function.
                'transportDir' => ''
                )
           )
       );

также не работал.

Итак, мой вопрос: как это сделать? Если я ошибаюсь, скажите мне, чтобы я мог больше узнать об этом.

Заранее спасибо.

Это полный исходный код модели Post.php

<?php
App::uses('AppModel', 'Model');
/**
 * Post Model
 *
 * @property Tier $Tier
 * @property Category $Category
 * @property Comment $Comment
 */
class Post extends AppModel {
      //var $now = 'CURDATE()';
/**
 * Validation rules
 *
 * @var array
 */
    public $validate = array(
        'title' => array(
            'notEmpty' => array(
                'rule' => array('notEmpty'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'content' => array(
            'notEmpty' => array(
                'rule' => array('notEmpty'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),

    );

    //The Associations below have been created with all possible keys, those that are not needed can be removed

/**
 * belongsTo associations
 *
 * @var array
 */
    public $belongsTo = array(
        'Tier' => array(
            'className' => 'Tier',
            'foreignKey' => 'tier_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
        'Category' => array(
            'className' => 'Category',
            'foreignKey' => 'category_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );

/**
 * hasMany associations
 *
 * @var array
 */
    public $hasMany = array(
        'Comment' => array(
            'className' => 'Comment',
            'foreignKey' => 'post_id',
            'dependent' => false,
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'exclusive' => '',
            'finderQuery' => '',
            'counterQuery' => ''
        )
    );

    public $actsAs = array(
    //'Containable',
    'Uploader.Attachment' => array(
        // Do not copy all these settings, it merely an example
        'banner' => array(
            'maxWidth' => 1200,
            'maxHeight' => 1200,
            'extension' => array('gif', 'jpg', 'png', 'jpeg'),
            'nameCallback' => '',
            'append' => '',
            'prepend' => '',
            'tempDir' => TMP,
            'uploadDir' => "/var/www/html/apps/webroot/img/banners/",
            'transportDir' => '',
            'finalPath' => '/img/banners/',
            'dbColumn' => '',
            'metaColumns' => array(),
            'defaultPath' => '',
            'overwrite' => true,
            'transforms' => array(),
            'stopSave' => true,
            'allowEmpty' => true,
            'transformers' => array(),
            'transport' => array(),
            'transporters' => array(),
            'curl' => array()
            ),
        'feature' => array(
            'maxWidth' => 1200,
            'maxHeight' => 1200,
            'extension' => array('gif', 'jpg', 'png', 'jpeg'),
            'nameCallback' => '',
            'append' => '',
            'prepend' => '',
            'tempDir' => TMP,
            'uploadDir' => '/var/www/html/apps/webroot/img/features/',
            'transportDir' => '',
            'finalPath' => '/img/features/',
            'dbColumn' => '',
            'metaColumns' => array(),
            'defaultPath' => '',
            'overwrite' => true,
            'transforms' => array(),
            'stopSave' => true,
            'allowEmpty' => true,
            'transformers' => array(),
            'transport' => array(),
            'transporters' => array(),
            'curl' => array()
            ),
    'books' => array(
            'maxWidth' => 1200,
            'maxHeight' => 1200,
            'extension' => array('pdf'),
            'nameCallback' => '',
            'append' => '',
            'prepend' => '',
            'tempDir' => TMP,
            'uploadDir' => '/var/www/html/apps/webroot/files/uploads/books' . date('d-m-Y'),
            'transportDir' => '',
            'finalPath' => '/files/uploads/books/',
            'dbColumn' => '',
            'metaColumns' => array(),
            'defaultPath' => '',
            'overwrite' => true,
            'transforms' => array(),
            'stopSave' => true,
            'allowEmpty' => true,
            'transformers' => array(),
            'transport' => array(),
            'transporters' => array(),
            'curl' => array()
            )
        )

    );
}
  • 0
    работает для меня: codepad.viper-7.com/okEgPw (игнорируя уведомления) вы уверены, что вы показываете нам код, генерирующий ошибку
  • 0
    это все еще не работает. сохраняйте распечатку Fatal Error Error: синтаксическая ошибка, неожиданная '.', ожидающая ')'
Показать ещё 2 комментария
Теги:
arrays
cakephp
model

1 ответ

2

ahh ok Я не смотрел на это с моей шляпой OO. вы не можете этого сделать, потому что:

Properties

Переменные элемента класса называются "свойствами". Вы также можете увидеть, как они ссылаются на другие термины, такие как "атрибуты" или "поля", но для целей этой ссылки мы будем использовать "свойства". Они определяются с использованием одного из ключевых слов public, protected или private, за которым следует объявление нормальной переменной. Это объявление может включать инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть способна быть оценена во время компиляции и не должна зависеть от информации о времени выполнения для оценки.

вам нужно использовать __construct()

  • 0
    Спасибо, сэр. Но у меня не было идеи, как это реализовать. Если вы не возражаете, можете поделиться некоторыми рекомендациями, как это сделать, чтобы я мог читать и выполнять исследования и разработки. еще раз спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню