1

レコードを更新するときに無効にすることはでき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();
4

1 に答える 1