Объявление 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()) {