1. 程式人生 > >Laravel Scout - 實時更新資料至Algolia

Laravel Scout - 實時更新資料至Algolia

在之前的一篇文章(Algolia Search - 使用Javascript實現前端實時搜尋 )裡,我們一起學習了怎麼使用Algolia,那麼今天我們一起來看一下,如何在Laravel中後臺實時更新資料索引至Algolia資料庫。

首先我們需要安裝Laravel Scout元件:

$ composer require laravel/scout
$ composer require algolia/algoliasearch-client-php

如果你的Laravel版本低於5.5,那麼你需要手動將service provider的類名新增進config/app.phpproviders

陣列中:

Laravel\Scout\ScoutServiceProvider::class,

如果你的版本是5.5+,那麼該步驟可以跳過。

接下來我們需要執行以下命令:

$ php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

該命令會將scout.php新增進config資料夾。


接下來,我們需要將我們的Algolia資訊新增到.env檔案中。請參考本文頂部連結的文章來找到你的

Application ID
Search-only API key
Admin API key

這裡不推薦直接將資訊新增至scout.php,因為這些資訊不應該被版本控制。
那麼在.env中,我們新增如下欄位:

ALGOLIA_APP_ID=YourApplicationID
ALGOLIA_SECRET=YourAdminAPIKey
ALGOLIA_SEARCH=YourSearchOnlyAPIKey

請將以上欄位=後的文字替換為你自己的Algolia資訊。


現在我們需要做的就是在我們每次更新資料時,資料會實時更新到Algolia
假設我們已經建立好了一個model名為Programmer,那麼我們僅僅需要在這個model裡新增一個trait

namespace
App; use Illuminate\Database\Eloquent\Model; use Laravel\Scout\Searchable; class Programmer extends Model { use Searchable; }

這樣就完成了!但是如果是首次索引資料,那麼我們需要先批量匯入Alogolia一次:

$ php artisan scout:import 'App\Programmer'

現在我們登入Algolia後臺,我們就能看到我們的資料了!