PHPackages                             grohiro/laravel-action-submit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. grohiro/laravel-action-submit

ActiveHelper[Utility &amp; Helpers](/categories/utility)

grohiro/laravel-action-submit
=============================

Laravel ActionSubmit button

0.1.2(12y ago)342MITPHP

Since Jul 6Pushed 12y ago1 watchersCompare

[ Source](https://github.com/grohiro/laravel-actionSubmit)[ Packagist](https://packagist.org/packages/grohiro/laravel-action-submit)[ Docs](https://github.com/grohiro/laravel-actionSubmit)[ RSS](/packages/grohiro-laravel-action-submit/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (3)Used By (0)

Laravel ActionSubmit
====================

[](#laravel-actionsubmit)

任意のアクションを実行するための Submit ボタンを生成できます。

```

```

一つのフォームに複数の submit ボタンを作成して、押されたボタンによって実行されるアクションを選択します。

**Route**

```
\Route::post('user/list', ['uses' => 'UserController@search', 'as' => 'user.search']);
\Route::post('user/delete', ['uses' => 'UserController@delete', 'as' => 'user.delete'])

```

**View (Blade)**

```
{{Form::open('user/list', ['method' => 'post'])}}
  {{Form::actionSubmitRoute('user.search', 'Search'))}}
  {{Form::actionSubmitRoute('user.delete', 'Delete'))}}
{{Form::close()}}

```

Submit ボタン
----------

[](#submit-ボタン)

### ルート Route

[](#ルート-route)

`Form::actionSubmitRoute($routeName, $value, $patemeters, $attributes)`

nametypevaluerouteNamestring'sample.user.list', 'user.batch.delete'valuestring'Search', 'Delete'parametersarray\[route parameters\]attributesarraysubmit tag attributes### アクション Action

[](#アクション-action)

`Form::actionSubmitAction($actionName, $value, $parameters, $attributes)`

nametypevalueactionNamestringUserController@search, Sample\\UserController@deletevaluestringSearch, Deleteparametersarray\[action parameters\]attributesarraysubmit tag attributes### パス Path

[](#パス-path)

`Form::actionSubmit($path, $value, $attributes)`

nametypevaluepathstringuser/serach, user/deletevaluestringSearch, Deleteattributesarraysubmit tag attributesUsage
-----

[](#usage)

**bootstrap/start.php**

```
\Laravel\Extension\ActionSubmit\ActionSubmit::register();

require $app;

```

---

（また地味なものを作ってしまった・・・。ここからは余談です。）

***どのように実装されているか***

Laravel に取り込まなくても Submit ボタンの onclick で form.action を書き換えれば同じことができるため無用かもしれませんが、JavaScript でガチャガチャやるのがあまりお好きじゃないかた使ってみてください。

任意のアクションをディスパッチするためルータを拡張しています。 Laravel のルータは以下の順序で実行するアクションを解決していました。

- `\Route::add()` などでルート定義 RouteCollections に登録
- リクエスト情報から以下の条件を全て満たすルートを取得
    - HTTP メソッドが一致する
    - スキーマ(https?://)が一致する
    - ホスト名が一致する
    - パスが一致する (/controller/action)
- 一致するルートが見つかれば uses で指定されたアクション (Controller@action) を実行する

ActionSubmit ではルートを取得する条件に Submit ボタンの name に埋め込まれたルートと一致するかどうかの条件を追加しています。

はまりポイントいくつか。

- `App::bind('router', 'MyRouter')` しても `MyRouter` クラスが使われない

    - `Illuminate\Routing\Router` が使われてしまう
    - どうやら `global.php` で `filters.php` がロードされる前に `App::bind()` しないといけない
    - `App:bind()` はどこでも実行できるが、`router` や `request` などは初期化前に実行しておかないと無意味
    - `global.php` でもだめなケースがあったので `bootstrap/start.php` に移動.
- `App::bind('router', 'Laravel\Extension\ActionSubmit\Router')` が動かない

    - `router` に拡張したクラスを登録すると全てのURLで404 Not Found になる
    - デバッグするとルート初期登録はできているのに、ディスパッチするときにはルートが空になってる (artisan route は正常)
    - どうやら `app('router')` の呼出で毎回 `Router` インスタンスが生成されているもよう
    - `App:bind('router', 'Hoge', true)` 第3引数の `true` で Singleton にすることで解決

##### See Also

[](#see-also)

- Illuminate\\Routing\\Router
- Illuminate\\Routing\\Route
- Illuminate\\Routing\\RouteCollections

###  Health Score

26

—

LowBetter than 40% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

4424d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/67ef539785d6b97ebb4070f2bfe8f551837282f71e4bba7b7b8529e060de4919?d=identicon)[grohiro](/maintainers/grohiro)

---

Top Contributors

[![grohiro](https://avatars.githubusercontent.com/u/6082303?v=4)](https://github.com/grohiro "grohiro (6 commits)")

---

Tags

laravelformaction

### Embed Badge

![Health badge](/badges/grohiro-laravel-action-submit/health.svg)

```
[![Health](https://phpackages.com/badges/grohiro-laravel-action-submit/health.svg)](https://phpackages.com/packages/grohiro-laravel-action-submit)
```

###  Alternatives

[kris/laravel-form-builder

Laravel form builder - symfony like

1.7k2.3M46](/packages/kris-laravel-form-builder)[anahkiasen/former

A powerful form builder

1.3k1.4M14](/packages/anahkiasen-former)[vildanbina/livewire-tabs

Laravel Livewire Tab Form component

505.3k](/packages/vildanbina-livewire-tabs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
