Skip to content

Commit 40cf211

Browse files
authored
Disable exceptions on InvalidPropertyPath
Disable exception throwing on properties
1 parent 361c40a commit 40cf211

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/ServiceProvider.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@
77
use Illuminate\Support\Facades\Blade;
88
use Barryvdh\Form\Extension\SessionExtension;
99
use Illuminate\View\View;
10+
use Symfony\Component\Form\Extension\Core\CoreExtension;
1011
use Symfony\Component\Form\Form;
1112
use Symfony\Component\Form\FormFactory;
13+
use Symfony\Component\Form\FormFactoryBuilder;
1214
use Symfony\Component\Form\FormFactoryInterface;
1315
use Symfony\Component\Form\FormRendererInterface;
1416
use Symfony\Component\Form\Forms;
17+
use Symfony\Component\PropertyAccess\PropertyAccess;
1518
use Barryvdh\Form\Extension\EloquentExtension;
1619
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
1720
use Symfony\Bridge\Twig\Form\TwigRendererEngineInterface;
@@ -62,7 +65,7 @@ public function boot()
6265
}
6366
return app('translator')->get($id, $replace, $locale);
6467
}));
65-
68+
6669
// csrf_token needs to be replaced for Laravel
6770
$twig->addFunction(new \Twig\TwigFunction('csrf_token', 'csrf_token'));
6871

@@ -117,7 +120,14 @@ public function register()
117120
});
118121

119122
$this->app->singleton(FormFactory::class, function ($app) {
120-
return Forms::createFormFactoryBuilder()
123+
124+
// Disable Invalid Property access because or how Eloquent works
125+
$propertyAccess = PropertyAccess::createPropertyAccessorBuilder()
126+
->disableExceptionOnInvalidPropertyPath()
127+
->getPropertyAccessor();
128+
129+
return (new FormFactoryBuilder(false))
130+
->addExtension(new CoreExtension($propertyAccess))
121131
->addExtensions($app['form.extensions'])
122132
->addTypeExtensions($app['form.type.extensions'])
123133
->addTypeGuessers($app['form.type.guessers'])

0 commit comments

Comments
 (0)