lara-zeus / bolt

form builder for your users, with so many use cases
https://larazeus.com/bolt
MIT License
188 stars 34 forks source link

[Bug]: /bolt routing missing #220

Closed zachiler closed 10 months ago

zachiler commented 10 months ago

What happened?

Unable to view forms or view all forms. Routes for /bolt seem to be missing.

How to reproduce the bug

I am running a fresh install of Laravel Jetstream, Filament, and then Bolt. I corrected the issue awaiting pr from the guava/filament-icon-picker, then proceeded to create a form and view it. Application returns an error of:

Call to a member function getPlugin() on null

Package Version

2.1.29

PHP Version

8.2.4

Laravel Version

10.37.3

Which operating systems does with happen with?

Windows

Notes

No response

atmonshi commented 10 months ago

hey @ZacHiler, unfortunately I can reproduce it I created a repo: https://github.com/atmonshi/test-bolt-jetstream

new laravel app, jetstream installed filament installed bolt

all working fine.

can you run php artisan about to see the exact version also if you can share the error page to check and trace the error.

atmonshi commented 10 months ago

are you using multiple panels?

zachiler commented 10 months ago

No just the single panel. I cloned your repo and it works just fine. I'm going to walk through my steps again and see what I missed. I'll post all commands in my next comment. Thanks for working with me on this.

zachiler commented 10 months ago

Hi @atmonshi, so I went through the steps again, carefully and could not reproduce my own error. I still want to provide you the steps I took and some of my own notes.

I did notice in my original composer.json file that I had used stable for minimal-stability. Could that have been the problem?

Notes: In the error I received when originally trying to require lara-zeus/bolt, I didn't know about the dependency, I think it's already there with Filament by default. So this step should probably get moved above composer require lara-zeus/bolt . Also, I put the plugins for Filament at the bottom of the AdminPanelProvider file.

Lastly, you might want to mention adding the use Lara-Zeus/Bolt/BoltPlugin; and use Filament\SpatieLaravelTranslatablePlugin; I'd be happy to pull in a PR to update the install documentation if you'd like. Thanks for making a great plugin and I look forward to exploring it more.

-- Begin

composer create-project laravel/laravel jetstream-bolt-test
cd jetstream-bolt-test
composer require laravel/jetstream
php artisan jetstream:install
    livewire
    api, dark, teams
    PHPUnit
npm install
npm run build
php artisan migrate
composer require filament/filament:"^3.1" -W
php artisan filament:install --panels
    admin

Verified that Filament installed by spinning up server, creating user, and navigating to /admin.

composer require lara-zeus/bolt 

Response:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - lara-zeus/bolt[1.2.7, ..., 1.2.12] require alperenersoy/filament-export ^0.3.5 -> satisfiable by alperenersoy/filament-export[v0.3.5, ..., v0.3.9].
    - lara-zeus/bolt[0.0.1, ..., 0.0.47, 1.0.0, ..., 1.2.6] require filament/notifications ^2.0 -> found filament/notifications[v2.15.1, ..., v2.17.55] but the package is fixed to v3.1.24 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - alperenersoy/filament-export[v0.3.5, ..., v0.3.9] require filament/tables ^2.0 -> found filament/tables[v2.3.6, ..., v2.17.55] but the package is fixed to v3.1.24 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - lara-zeus/bolt[v2.0.0, ..., v2.0.6] require alperenersoy/filament-export v3.0.0-beta -> found alperenersoy/filament-export[v3.0.0-beta] but it does not match your minimum-stability.
    - lara-zeus/bolt[v2.0.7, ..., v2.0.10] require guava/filament-icon-picker dev-main -> found guava/filament-icon-picker[dev-main] but it does not match your minimum-stability.
    - lara-zeus/bolt[v2.0.11, ..., v2.1.29] require alperenersoy/filament-export dev-fix-there -> found alperenersoy/filament-export[dev-main, v0.1.0-alpha, ..., v0.3.9, v3.0.0-beta, ..., v3.x-dev] but it does not match the constraint.
    - Root composer.json requires lara-zeus/bolt * -> satisfiable by lara-zeus/bolt[0.0.1, ..., 0.0.47, 1.0.0, ..., 1.2.12, v2.0.0, ..., v2.1.29].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require lara-zeus/bolt:*" to figure out if any version is installable, or "composer require lara-zeus/bolt:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Made adjustments to composer.json file as mentioned in Bolt documentation: https://larazeus.com/docs/bolt/v2/getting-started/installation#content-note-about-filament-export

composer update

Added GitHub Token to exceed API limitations.

composer require lara-zeus/bolt
php artisan bolt:install

Made adjustments to AdminPanelProvider.php found in app\Providers\Filament: https://larazeus.com/docs/bolt/v2/getting-started/installation#content-register-bolt-with-filament

I also had to add the following to that file:

use Filament\SpatieLaravelTranslatablePlugin;
use LaraZeus\Bolt\BoltPlugin;

Fixed current issue with guava/filament-icon-picker repo and proceeded to create new form. Single section, single field, text input. Form created and available when clicking 'Open'.