无法 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
函数,当我什至尝试提及 route
、method
、url
和 action
。不适合我的系统。
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>
我正在使用 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
函数,当我什至尝试提及 route
、method
、url
和 action
。不适合我的系统。
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>