Auto Save not working
egknight opened this issue · 4 comments
egknight commented
I have added \anlutro\LaravelSettings\SaveMiddleware::class,
to middleware in Kernel.php but autosave is not working in http request. I am using database for storage. Saves work using Setting::save();
anlutro commented
I can't reproduce this on a fresh Laravel 5.5 install. Maybe other serviceproviders are interfering somehow?
egknight commented
I am using fresh laravel install.
laravel new test
cd test
composer require anlutro/l4-settings
php artisan vendor:publish --provider="anlutro/l4-settings" --tag="config"
Open up app/Http/Kernel.php
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\anlutro\LaravelSettings\SaveMiddleware::class,
];
Open up routes/web.php
Route::get('/', function () {
Setting::set('foo', 'bar');
dd(Setting::get('foo', 'default value'));
return view('welcome');
});
returns "bar"
Route::get('/', function () {
// Setting::set('foo', 'bar');
dd(Setting::get('foo', 'default value'));
return view('welcome');
});
Would expect "bar" but returns "default value"
Thanks
anlutro commented
I think that's because you are calling dd
which will cause PHP to terminate, so the middleware's terminate
method never gets called.
egknight commented
Yes, I've removed that and tested by passing data to a view and it works as expected.