Skip to content
Advertisement

Laravel AbstractVariables.php line 54 Expected name to be a string

I am using Laravel 6 with visual studio code. The last successfully command i run is given below with their out put.

php artisan config:clear
Configuration cache cleared!

But after that, whatever command i do execute it gives me an error

In AbstractVariables.php line 54:
Expected name to be a string.

I have tried to execute given below commands, but all of these ends up with above mentioned error.

composer update
php artisan serve
php artisan config:clear
php artisan cache:clear
php artisan route:clear

I have tried to find out file named “AbstractVariables.php” and i did find it in given below directory

vendorvlucasphpdotenvsrcEnvironment

I have tried to read what is code is given on line 54 of file named “AbstractVariables.php”

public function get($name){
    if (!is_string($name)) {
       throw new InvalidArgumentException('Expected name to be a string.');
    }    
    return $this->getInternal($name);
}

And the comments above this function is…

* Get an environment variable.    
* @param string $name    
* @throws InvalidArgumentException
* @return string|null

So, it means it is searching environment variable some where and it is not able to find string there.

.env file in my profile has all variables name. Now, I am not able to understand what else is missing, I have done a lot of search on google but didn’t find any thing in this regard.

Advertisement

Answer

This problem occurred when I configured spatie/laravel-analytics to fetch google analytics data to display in admin panel of website. In order to make it functional it was required to add 'view_id' => env('ANALYTICS_VIEW_ID') in config/analytics.php file.

What mistake was done?

In config/analytics.php file I added view id without single quote mark which was wrong. Example is given below….

'view_id' => 123456789,

After that whenever I hit follow commands i get error

php artisan config:clear
php artisan cache:clear

Error is given below…

In AbstractVariables.php line 54:
Expected name to be a string.

How I solved issue?

I have updated config/analytics.php as per documentation and changed it like given below…

'view_id' => env('ANALYTICS_VIEW_ID')

And in .env file added environment variable ANALYTICS_VIEW_ID

ANALYTICS_VIEW_ID=216007652

After that both commands php artisan config:clearand php artisan cache:clear worked perfectly.

User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement