【发布时间】:2015-09-11 23:26:28
【问题描述】:
假设我有以下相关表格:
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中创建一个方法,并在我想附加到任何其他模型时调用它。
标签: php mysql eloquent laravel-5.1 observers