Laravel Scout - 實時更新資料至Algolia
阿新 • • 發佈:2018-11-01
在之前的一篇文章(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.php
的providers
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
後臺,我們就能看到我們的資料了!