I have an app that I am writing with Laravel. I am still fairly new with the framework and don't understand most of it. I am using Algolia as the search engine with Laravel's Scout. In the models you add use Searchable
, a trait, and the records are automatically passed to Algolia, which is cool. I am trying to put a simple statement if (App::environment('local'))" exit scout
, just so we are not sending our development data to Algolia. Scout will also throw an exception if I run out of the hacker level of 10,000 records a Algolia.
0
votes
4 Answers
7
votes
3
votes
On your local environment you can call YourModel::disableSearchSyncing()
, which will prevent this model from pushing data to Algolia.
The reverse to this method is YourModel::enableSeachSyncing()
, but the search is enabled by default, so usually there is no need to use it.
0
votes
Per the Laravel 5.3 documentation:
Set the environment the in the
.env
file:APP_ENV=local
Determine the current environment:
$environment = App::environment();
Check on
$environment
and return true:if (App::environment('local')) { // The environment is local } if (App::environment('local', 'staging')) { // The environment is either local OR staging... }
0
votes
None of above solution works I suggest you to check in your toSearchableArray()
method inside your User
Model. If you try to set the SCOUT_DRIVER=null
in local environment then you will face an error because your application tends to push to Algolia in any environment.
Try to do this instead:
public function toSearchableArray()
{
if (! app()->isLocal()) {
return [
'username' => $this->username,
'age' => (string) $this->age,
// and so on ...
];
}
}