Объявление SearchableBehavior::beforeSave() должно быть совместимо с ModelBehavior::beforeSave(Model $model, $options = Array)

Я использую https://github.com/connrs/Searchable-Behaviour-for-CakePHP

Ошибка извлечения плагина:

Строгий (2048): объявление SearchableBehavior::beforeSave() должно быть совместимо с ModelBehavior::beforeSave(Model $model, $options = Array) [APP/Plugin/Searchable/Model/Behavior/SearchableBehavior.php, строка 5]

Строгое (2048): объявление SearchableBehavior::afterSave() должно быть совместимо с ModelBehavior::afterSave($ модель, $ созданный, $ options = Array) [APP / Plugin / Searchable / Model / Behavior / SearchableBehavior.php, строка 5]

Строка 5 в SearchableBehavior.php:

class SearchableBehavior extends ModelBehavior { // Line 5
public $__defaultSettings = array(
    'foreignKey' => false,
    '_index' => false,
    'rebuildOnUpdate' => true,
    'fields' => '*',
    'stopwords_lang' => 'es'
);

Любая идея?

2 ответа

Решение

Изменить подпись метода

Вероятно, этот плагин был создан для более ранней версии CakePHP. Ошибка гласит:

Строгий (2048): объявление SearchableBehavior::beforeSave() должно быть совместимо с ModelBehavior::beforeSave(Model $model, $options = Array) [APP/Plugin/Searchable/Model/Behavior/SearchableBehavior.php, строка 5]

Т.е. в поисковом поведении есть это:

public function beforeSave(Model $Model) {

И вместо этого он должен быть изменен на

public function beforeSave(Model $model, $options = Array) {

Такого рода предупреждение всегда будет отображаться всякий раз, когда дочерний класс переопределяет метод и присваивает ему другую подпись.

Должно быть

public function beforeSave(Model $model, $options = Array()) {
Другие вопросы по тегам