Formfeed-UK / nova-breadcrumbs

Augments Nova 4 Breadcrumbs with nesting and resource/static override methods
MIT License
20 stars 9 forks source link

Check for routes cached as SerializableClosure #38

Closed peterjbassi closed 11 months ago

peterjbassi commented 1 year ago

Laravel: 9.52.7 Nova: 4.27.12

Nova 4 custom tool Inertia routes are cached as serialized \Laravel\SerializableClosure\SerializableClosure instances.

ex.

api.php

...
Route::get('/', function (NovaRequest $request) {
    return inertia('AdminReports');
});
...

routes-v7.php

...
'uses' => 'O:47:"Laravel\\SerializableClosure\\SerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Signed":2:{s:12:"serializable";s:319:"O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:100:"function (\\Laravel\\Nova\\Http\\Requests\\NovaRequest $request) {
    return \\inertia(\'AdminReports\');
}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"000000000000084f0000000000000000";}";s:4:"hash";s:44:"WfLjdBDYnFmCf7ZoX+kvA7cra30SXZb8DYUy/+O+9Y0=";}}',
...

This change adds an attempt to retrieve a Closure from a potential serialized SerializableClosure instance before the existing instanceof Closure check runs in the middleware.