Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Your configuration files are not serializable

I ran

php artisan config:cache

on my terminal and i got a LogicException

LogicException  : Your configuration files are not serializable.

at C:\xampp\htdocs\{PROJECT}\vendor\laravel\framework\src\Illuminate\Foundation\Console\ConfigCacheCommand.php:68

 64|             require $configPath;
 65|         } catch (Throwable $e) {
 66|             $this->files->delete($configPath);
 67|
 68|             throw new LogicException('Your configuration files are not serializable.', 0, $e);
 69|         }
 70|
 71|         $this->info('Configuration cached successfully!');
 72|     }

 Exception trace:

1   Error::("Call to undefined method Closure::__set_state()")
  C:\xampp\htdocs\{PROJECT}\bootstrap\cache\config.php:241

2   require()
  C:\xampp\htdocs\{PROJECT}\vendor\laravel\framework\src\Illuminate\Foundation\Console\ConfigCacheCommand.php:64

Please use the argument -v to see more details.

I've never encountered this error before when running this command. Please any help will be appreciated. Thank you.

like image 821
Brendan Avatar asked Aug 28 '18 20:08

Brendan


2 Answers

To find out where exactly the issue is, you can temporarily remove $this->files->delete($configPath); from vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php. By doing so bootstrap/cache/config.php does not get automatically deleted and you can look up the mentioned line (here 241) in the config.php file.

like image 53
André Avatar answered Sep 17 '22 17:09

André


I am facing the same issue. I only add toarray() function to Setting::first() then its worked. config only get array values not array of objects.

config([
        'global' =>  Settings::first()->toarray(),
    ]);
like image 42
Assad Yaqoob Avatar answered Sep 16 '22 17:09

Assad Yaqoob