レコードを更新するときに無効にすることはできtoSearchableArray
ますか? または検索インデックスのレコードの特定のフィールドのみを更新する方法はありますか?
例えば:
public function toSearchableArray()
{
$item = $this->toArray();
$item['title'] = $this->title;
...
...
...
$item['category'] = $this->category->category_name;
$item['uploaded_at'] = Carbon::now('America/Montreal')->timestamp;
}
現在の唯一の問題は、レコードを更新するたびに、uploaded_at タイムスタンプもリセットされ、関係が再ロードされることです。これは、アイテムを作成したときに既に設定されているため、必要のないもう 1 つのクエリです。
一時的に無効にする方法はありますtoSearchableArray
か?インデックスの行のいくつかのフィールドを更新するだけでよいので、toSearchableArray ですべてを再実行する必要はありません。
以下のように、タイトルのみを更新し、リレーションを再度リセットuploaded_at
またはロードせずにアルゴリア インデックスのタイトルを更新します。category
$order = App\Order::find(1);
$order->title = 'a new title'
$order->save();