Как расширить класс таблицы CakePhp3

Мне нужно расширить класс ModelTable, чтобы добавить метод Follow только один раз, а не в каждом классе

public function addOrUpdate($data, $options=[])   {
  if ($this->existe($data)) {
    $obj = $this->findById($data['id'])->first();
    $obj = $this->patchEntity($obj, $data,$options);
  }else{
  $obj = $this->newEntity($data,$options);
  }
  return $this->save($obj);
 }

person Alex Martins    schedule 28.04.2017    source источник
comment
Ваш вопрос немного неясен, так как он, кажется, не описывает фактическую техническую проблему, с которой вы столкнулись, пожалуйста, добавьте больше информации и опишите полную картину, чтобы люди, которые не могут оглянуться через ваше плечо, могли воспроизвести проблему. - Благодарность!   -  person ndm    schedule 28.04.2017
comment
Мне нужно только расширить класс таблицы в cakePhp.. код не имеет значения, но пример   -  person Alex Martins    schedule 28.04.2017
comment
CakePHP — это PHP, классы могут быть расширены, как и любой другой класс в PHP. Но это, вероятно, не то, что вы хотите услышать, так что еще раз, пожалуйста, будьте более конкретными.   -  person ndm    schedule 29.04.2017


Ответы (1)


Вы можете создать класс CustomTable, расширяющий класс Table. Поместите свою функцию в класс CustomTable. Затем вы можете создать каждый класс таблицы модели, расширяющий класс CustomTable.

class CustomTable extends Table {

    public function addOrUpdate($data, $options = [])
    {
        ...
    }
}

class ModelTable extends CustomTable {
    ...
}
person aravind_s    schedule 25.05.2017