1
讓我們假設我有以下相關表:Laravel 5.1 - 對相關車型車型觀察者
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'內創建一個方法,並且每當我要附加到任何其他模型時調用它。 –