在之前的一篇文章(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
後臺,我們就能看到我們的數據了!