Предположим, у меня есть следующие связанные таблицы:
pages
----------------
id
content
visitors
----------------
id
name
page_visitor
----------------
page_id
visitor_id
Как видите, у нас может быть три таблицы, в которых pages
и visitors
имеют отношение "многие ко многим".
Я успешно реализовал класс наблюдателя в классе модели pages
, и теперь все, что я делаю с таблицей страниц, отражается где-то еще. Используя следующий код:
class ElasticsearchPageObserver
{
private $elasticsearch;
public function __construct(ESClient $client)
{
$this->elasticsearch = $client;
}
public function created(Page $page)
{
$params = $page->buildElasticsearchParams();
$response = $this->elasticsearch->index($params);
}
public function updated(Page $page)
{
$params = $page->buildElasticsearchParams();
$response = $this->elasticsearch->index($params);
}
}
Вы поняли идею, верно?
Оказывается, когда обновляются таблицы, имеющие связь «один ко многим» с таблицей страниц, указанный выше наблюдатель наблюдает за этим. Но не для отношений «многие ко многим» (как указано выше).
Ну и как мне теперь поступить??? Как сделать то же самое при обновлении page_visitor
?
Спасибо
page
и вызывать его всякий раз, когда я хочу подключиться к любой другой модели. - person Milad.Nozari   schedule 11.09.2015