Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Nova Bank Field Laravel Package

wamesk/laravel-nova-bank-field

A custom Laravel Nova field for capturing and displaying bank details in your admin panel. Drop it into any Nova resource to manage account information with a clean, consistent input experience, keeping financial data simple to edit and easy to read.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Confirm the version boundary first. 4.0.0 is a Laravel Nova 4 branch. Before anything else, check composer.json for the hard constraints this release implies: laravel/nova: ^4.0, laravel/framework: ^9.0|^10.0, and php: ^8.0. If the app is still on Nova 3, stay on the previous major line — there is no dual-compatibility branch here.
  • Install and register the tool. composer require <vendor>/<package>:^4.0, then add the tool to the tools() array in app/Nova/NovaServiceProvider.php. Most Nova tools also expose cards, fields, or resources; those are registered separately in cards(), resources(), or via the tool's own service provider.
  • Publish assets and config. Run php artisan vendor:publish --provider="<Vendor>\<Package>\ToolServiceProvider" (or the tag listed in the README), then php artisan nova:publish so compiled JS/CSS land in public/vendor/<tool>. Skipping this is the single most common cause of a blank tool screen.
  • Where to look first. In the package source, start at src/ToolServiceProvider.php (menu registration, Nova::script()/Nova::style() calls, route registration) and resources/js/tool.js (the Vue entry point). For behavior, src/Http/Controllers and routes/api.php show what the front end actually calls.
  • First use case. The typical day-one win is a custom tool page (a dashboard, report, or settings screen) mounted in the Nova sidebar, authorized per-user via canSee()/authorize(). Get that rendering end-to-end before wiring in fields or actions.

Implementation Patterns

  • Menu and navigation. Register the tool's sidebar entry in the tool's boot() via Nova::tools() or the menu()/renderNavigation() hooks. Gate visibility with canSee(Request $request) rather than hiding it in the UI — Nova will still expose the underlying routes otherwise.
  • Front-end/back-end contract. Nova tools talk to the backend through routes registered under the nova-vendor/{tool} prefix and consumed with Nova.request() from Vue. Keep that contract thin: return plain JSON from controllers and let the Vue components own presentation. Do not mix Blade-rendered tables into a tool page alongside Inertia/Vue routing.
  • Service-provider layering. A tool package usually has two providers: the package provider (config, migrations, publishes) and the tool provider (Nova registration, scripts, routes). Register only the tool provider in NovaServiceProvider::tools(); keep the package provider in composer.json's extra.laravel.providers so it boots in console/queue contexts too.
  • Cards vs. tools vs. fields. Prefer a metric or card for read-only numbers on the dashboard, a tool for multi-page workflows, and a custom field only when the value belongs on a resource form/detail. This maps cleanly onto Nova's own lifecycle and avoids re-implementing resource authorization.
  • Authorization as a first-class concern. Wire tool access through Nova policies (Nova::whenServing() middleware, Gate checks) so CLI, queued jobs, and API consumers see the same rules as the UI. A canSee() that returns true while the routes are unprotected is a common audit finding.
  • Upgrade workflow for this release. Because 4.0.0 targets Nova 4, plan the move as a coordinated bump: Nova 4 + Laravel 9/10 + this package in one branch. Re-install node dependencies (rm -rf node_modules package-lock.json && npm install), then rebuild assets. Nova 4's tooling scaffold changed from Nova 3 (Vue 3 + Inertia), so any locally customized webpack.mix.js/nova.mix.js or Vue 2 component code must be ported, not merged.

Gotchas and Tips

  • The release note is one line. "Create branch for Laravel Nova 4" tells you the intent, not the diff. Read the CHANGELOG/compare link before adopting: the meaningful breaking changes are almost certainly in the front-end build, not the PHP API. Treat 4.0.0 as "Nova 3 branch frozen; all new work here."
  • Vue 3 / Inertia migration is the real breaking change. Any custom Vue components written against Nova 3 (Vue 2, this.$set, filters, Nova.booting patterns) will fail silently or throw at build time. Check the console and npm run prod output first — build errors are far easier to diagnose than runtime blanks.
  • Asset caching. After upgrading, stale compiled assets are the #1 false-positive bug report. Run php artisan nova:publish, hard-refresh, and confirm the file hash in public/vendor/<tool> changed. In production, ensure the deploy pipeline rebuilds and republishes assets rather than relying on committed public/ files.
  • Version skew. Because 3.x and 4.x are separate branches, a composer update on an app pinned to Nova 3 can resolve to a 4.x tag if constraints are loose ("*" or ^3.0 || ^4.0 written incorrectly). Pin explicitly in composer.json and commit the lockfile.
  • Routes are public unless you make them so. nova-vendor routes are not automatically policy-protected. Verify every controller action in the tool has an explicit authorize/Gate call, especially for actions that mutate data.
  • Debugging checklist. Blank tool → check published assets and the browser console; 404s → php artisan route:list | grep nova-vendor; 500s → storage/logs/laravel.log plus the Nova error modal's underlying response; "tool not in sidebar" → the tool is registered in tools() but canSee() is returning false for that user.
  • Extension points worth knowing. Config publishing for runtime toggles, Nova::script() for injecting per-page JS without a full rebuild, tool-level middleware for tenancy/audit logging, and translatable strings via the package's lang/ directory. Prefer these over forking the package — the Nova 3→4 branch split means patches applied to the old branch won't carry forward.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel