2015-11-06 3 views
1

Я изучаю cakephp 3, но мне трудно понять, где я должен писать свой код. Я понимаю, что модель была разделена между таблицами и сущностями, но откуда я могу узнать, куда должен идти мой код?Где я должен писать код модели в cakephp 3?

Например, я хочу, чтобы поле в моей базе данных обновлялось каждый раз, когда пользователь редактирует свой профиль. Я хочу добавить свой код в модель, потому что я понимаю, что модель должна быть «жирной», а контроллеры «тонкими». Я могу добавить его на свой контроллер, но я чувствую, что нарушаю это правило MVC.

Итак, где я должен это реализовать? Что еще более важно, как я могу правильно это кодировать в модели?

Благодаря

+0

Попробуйте испечь свою модель, контроллер и просмотреть и увидеть сгенерированный код. Вы можете учиться у них. http://book.cakephp.org/3.0/en/bake/usage.html – rrd

ответ

0

Согласно Bookmarker учебника вы хотите сделать следующее:

В ЦСИ/Модель/Table/BookmarksTable.php добавить следующее:

// The $query argument is a query builder instance. 
// The $options array will contain the 'tags' option we passed 
// to find('tagged') in our controller action. 
public function findTagged(Query $query, array $options) 
{ 
    return $this->find() 
     ->distinct(['Bookmarks.id']) 
     ->matching('Tags', function ($q) use ($options) { 
      return $q->where(['Tags.title IN' => $options['tags']]); 
     }); 
} 

Таким образом, вы захотите добавить любой «модельный» код в свои файлы таблиц.