你会如何跳过 Laravel Scout of environment is not production?
How would you skip Laravel Scout if enviroment is not production?
我有一个正在使用 Laravel 编写的应用程序。我对这个框架还很陌生,大部分都不明白。我在 Laravel 的 Scout 中使用 Algolia 作为搜索引擎。在你添加 use Searchable
的模型中,一个特征,记录会自动传递给 Algolia,这很酷。我试图做一个简单的声明 if (App::environment('local'))" exit scout
,这样我们就不会将我们的开发数据发送到 Algolia。如果我 运行 超出 10,000 条记录的黑客级别,Scout 也会抛出异常。
在您本地的 .env 中添加
SCOUT_DRIVER=null
在生产中添加
SCOUT_DRIVER=algolia
在config/scout.php中添加
'driver' => env('SCOUT_DRIVER', 'null')
它会自动在本地被忽略,但在生产中有效。
这只是一个建议。尝试根据您的具体情况进行调整。
在您的本地环境中,您可以调用 YourModel::disableSearchSyncing()
,这将阻止此模型将数据推送到 Algolia。
与此方法相反的是YourModel::enableSeachSyncing()
,但默认情况下会启用搜索,因此通常不需要使用它。
在.env
文件中设置环境:
APP_ENV=local
判断当前环境:
$environment = App::environment();
检查 $environment
和 return 正确:
if (App::environment('local')) {
// The environment is local
}
if (App::environment('local', 'staging')) {
// The environment is either local OR staging...
}
None 上述解决方案有效我建议您检查 User
模型中的 toSearchableArray()
方法。如果您尝试在本地环境中设置 SCOUT_DRIVER=null
,那么您将面临错误,因为您的应用程序往往会在任何环境中推送到 Algolia。
尝试这样做:
public function toSearchableArray()
{
if (! app()->isLocal()) {
return [
'username' => $this->username,
'age' => (string) $this->age,
// and so on ...
];
}
}
我有一个正在使用 Laravel 编写的应用程序。我对这个框架还很陌生,大部分都不明白。我在 Laravel 的 Scout 中使用 Algolia 作为搜索引擎。在你添加 use Searchable
的模型中,一个特征,记录会自动传递给 Algolia,这很酷。我试图做一个简单的声明 if (App::environment('local'))" exit scout
,这样我们就不会将我们的开发数据发送到 Algolia。如果我 运行 超出 10,000 条记录的黑客级别,Scout 也会抛出异常。
在您本地的 .env 中添加
SCOUT_DRIVER=null
在生产中添加
SCOUT_DRIVER=algolia
在config/scout.php中添加
'driver' => env('SCOUT_DRIVER', 'null')
它会自动在本地被忽略,但在生产中有效。 这只是一个建议。尝试根据您的具体情况进行调整。
在您的本地环境中,您可以调用 YourModel::disableSearchSyncing()
,这将阻止此模型将数据推送到 Algolia。
与此方法相反的是YourModel::enableSeachSyncing()
,但默认情况下会启用搜索,因此通常不需要使用它。
在
.env
文件中设置环境:APP_ENV=local
判断当前环境:
$environment = App::environment();
检查
$environment
和 return 正确:if (App::environment('local')) { // The environment is local } if (App::environment('local', 'staging')) { // The environment is either local OR staging... }
None 上述解决方案有效我建议您检查 User
模型中的 toSearchableArray()
方法。如果您尝试在本地环境中设置 SCOUT_DRIVER=null
,那么您将面临错误,因为您的应用程序往往会在任何环境中推送到 Algolia。
尝试这样做:
public function toSearchableArray()
{
if (! app()->isLocal()) {
return [
'username' => $this->username,
'age' => (string) $this->age,
// and so on ...
];
}
}