无法 POST 数据到另一个控制器然后存储在 Laravel

Unable to POST data to another controller then STORE in Laravel

我正在使用 Laravel 5.2 并尝试提交有关下拉选择的表单。尽管我能做到。但它总是重定向到注册为 resource 路由的 store 函数。

我的 routes.php 文件的路由定义如下:

Route::group(['middleware' => ['web']], function () {

    Route::group(['middleware' => 'auth'], function () {

        Route::get('dashboard', function () {
            return view('dashboard.dashboard');
        });

        Route::get('getcurrency', 'QuoteController@getCurrency'); <!--------This is where i have problem--------->
        Route::resource('quotes','QuoteController');
    });

});

我也试过命名路线。但它总是带我走向 store function

这是我的下拉菜单的样子:

<form method="post" action={{ action('QuoteController@getCurrency') }}>
                                <div class="form-group">
                                    <label class="control-label col-md-1">Name</label>
                                    <div class="col-md-5">      
                                        <select class="form-control select2me selectCurrency" name="user_id" onchange="this.form.submit()">
                                            @foreach($users as $user)
                                                <option value="{{$user->id}}">{{ $user->name }} 
                                                    @if(!empty($user->companyname))
                                                        ({{$user->companyname }})
                                                    @else
                                                        ({{$user->email}})
                                                    @endif
                                                </option> 
                                            @endforeach 
                                        </select>

                                    </div>
                                </div>
</form>

我无法理解为什么它总是强制仅将值发送到 store 函数,当我什至尝试提及 routemethodurlaction。不适合我的系统。

laravel是否有预定义的趋势,仅将提交按钮用于特定功能?

这是我的 URL 当我有表格时的样子 :

http://localhost/laravel/public/quotes

有谁知道为什么会这样?我该如何解决?

谢谢!

如果您使用路由资源,您的 post 将自动进入存储方法以获得更多 https://laravel.com/docs/5.2/controllers#restful-resource-controllers

想换方法就换动作,like

<form method="post" action='quotes'>

然后需要在资源路由

之前为这个url写一个路由
Route::group(['middleware' => ['web']], function () {

Route::group(['middleware' => 'auth'], function () {

    Route::get('dashboard', function () {
        return view('dashboard.dashboard');
    });

    Route::get('getcurrency', 'QuoteController@getCurrency'); <!--------This is where i have problem--------->
    Route::post('quotes','QuoteController@customMethod');
    Route::resource('quotes','QuoteController');
});

});

Route.php

Route::group(['middleware' => ['web']], function () {

    Route::group(['middleware' => 'auth'], function () {

        Route::get('dashboard', function () {
            return view('dashboard.dashboard');
        });

        Route::post('getcurrency', 'QuoteController@getCurrency'); // make it post instead of get
        Route::resource('quotes','QuoteController');
    });

});

blade 文件

<form method="post" action={{ url('getcurrency') }}>
  <input type="hidden" name="_token" value={{ csrf_token() }}/>
                                <div class="form-group">
                                    <label class="control-label col-md-1">Name</label>
                                    <div class="col-md-5">      
                                        <select class="form-control select2me selectCurrency" name="user_id" onchange="this.form.submit()">
                                            @foreach($users as $user)
                                                <option value="{{$user->id}}">{{ $user->name }} 
                                                    @if(!empty($user->companyname))
                                                        ({{$user->companyname }})
                                                    @else
                                                        ({{$user->email}})
                                                    @endif
                                                </option> 
                                            @endforeach 
                                        </select>

                                    </div>
                                </div>
</form>