版权声明:尊重原创喔,转载请注明 https://blog.csdn.net/lgyaxx/article/details/78811349
在之前的一篇文章(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
后台,我们就能看到我们的数据了!