我有一个正在用 Laravel 编写的应用程序。我对这个框架还很陌生,而且大部分内容都不了解。我使用 Algolia 作为 Laravel 的 Scout 的搜索引擎。在你添加的模型use Searchable
中,一个特征,并且记录会自动传递给 Algolia,这很酷。我试图发表一个简单的声明if (App::environment('local'))" exit scout
,这样我们就不会将我们的开发数据发送到 Algolia。如果我用完 Algolia 的 10,000 条记录的黑客级别,Scout 也会抛出异常。
问问题
1734 次
4 回答
8
在您当地的 .env 添加
SCOUT_DRIVER=null
在生产中添加
SCOUT_DRIVER=algolia
在 config/scout.php 添加
'driver' => env('SCOUT_DRIVER', 'null')
它会自动在本地被忽略,但在生产中工作。这只是一个建议。尝试使其适应您的特定环境。
于 2017-01-17T04:38:57.403 回答
3
在您的本地环境中,您可以调用YourModel::disableSearchSyncing()
,这将阻止此模型将数据推送到 Algolia。
该方法的反面是YourModel::enableSeachSyncing()
,但默认启用搜索,因此通常不需要使用它。
于 2017-01-17T04:48:12.883 回答
0
在
.env
文件中设置环境:APP_ENV=local
确定当前环境:
$environment = App::environment();
检查
$environment
并返回 true:if (App::environment('local')) { // The environment is local } if (App::environment('local', 'staging')) { // The environment is either local OR staging... }
于 2017-01-17T05:31:23.837 回答
0
以上解决方案均无效,我建议您在模型中检查您的toSearchableArray()
方法User
。如果您尝试SCOUT_DRIVER=null
在本地环境中设置,那么您将面临错误,因为您的应用程序倾向于在任何环境中推送到 Algolia。
尝试这样做:
public function toSearchableArray()
{
if (! app()->isLocal()) {
return [
'username' => $this->username,
'age' => (string) $this->age,
// and so on ...
];
}
}
于 2017-08-13T00:39:09.880 回答