Проблема с нумерацией страниц плагина CakePHP Tags

У меня проблемы с работой плагина тега CakeDC. Я очень внимательно прочитал документацию, но кажется, что она очень старая.

// Totally works. Does what it is supposed to do, does not 
// complain of missing models.
        $tag =  $this->Upload->Tagged->find('tagged', 
        array('by' => $tagname, 'model' => 'Upload', 'conditions' => 
        array( 'Upload.soft_delete !=' => 1) ));


// 100% correct according to the 3 year old documentation. 
// Complains of a missing  "taggeds" model.
// Table taggeds for model Tagged was not found in datasource default.
// Undefined index: tagged [CORE/Cake/Model/Model.php, line 2731]


        $this->paginate['Tagged'] = array(
                        'model' => 'Upload',   
                        'tagged',
                        'by' => $tagname);

        $tag = $this->paginate('Tagged');

Я прочитал документацию здесь: https://github.com/CakeDC/tags/wiki/Find-tagged-objects

Сначала я столкнулся с ошибкой «Непрямая модификация перегруженного свойства $paginate... без эффекта», пока не добавил public $paginate = array(); к верхней части моего контроллера. Это не помогло другой ошибке.

Надеюсь, мне не хватает чего-то простого здесь.

ОБНОВЛЕНИЕ: я изменил код, чтобы он выглядел так

$this->Paginator->settings['Tagged'] = array(
        'tagged',
        'model' => 'Upload',    
        'by' => $tagname
    ); 

$this->Paginator->paginate('Tagged');   

и я получаю эту ошибку: Ошибка: вызов функции-члена paginate() для не-объекта


person baordog    schedule 05.03.2014    source источник


Ответы (2)


В конце концов я заставил его работать, добавив в верхнюю часть контроллера

public $components = array('Paginator');

Тогда в моем методе

$this->Paginator->settings['Tagged'] = array(
    'tagged',
    'model' => 'Upload',   
    'by' => $tagname
);
$this->Paginator->paginate('Tagged');
person massimoi    schedule 04.11.2014

Я столкнулся с косвенной модификацией перегруженного свойства $paginate... без эффекта.

Это ваша проблема, а не ошибка. CakePHP немного изменился, попробуйте это:

$this->Paginator->settings['Tagged'] = array(
    'tagged',
    'model' => 'Upload',   
    'by' => $tagname
);
$this->Paginator->paginate('Tagged');

Вы можете улучшить документацию. В настоящее время мы поддерживаем 14 плагинов бесплатно, любая помощь приветствуется. Отдайте что-нибудь и помогите улучшить документы. :)

person floriank    schedule 05.03.2014
comment
Ошибка: вызов функции-члена paginate() для не-объекта, а также косвенная модификация перегруженного свойства SearchesController::$Paginator не имеет эффекта - person baordog; 07.03.2014