router.php
Route :: get('/ p00001 / edit / {center} / {id}', 'Dashboard \ Programs \ P00001Controller @ edit'); 路线:: put('/ p00001 / update / {center} / {id}', 'Dashboard \ Programs \ P00001Controller @ update');
form.blade.php
<!DOCTYPE html>
<html dir="ltr" lang="zh-TW">
<body>
<form id="mainform" action="/dashboard/programs/p00001/update/JPN/3121-111907230007" method="post" class="form-horizontal">
{{ csrf_field() }}
{{ method_field('put') }}
<input type="text" value='1234' id="inpTest" name="inpTest">
<input type="submit" name="inpSubmit">
</form>
</body>
</html>
P00001Controller.php
public function __construct(Request $request, P00001Service $P00001Service ) { $this->request = $request; } public function update($center, $id) { $data = $this->request->all(); echo "<pre>", print_r($_POST, 1), "</pre>"; echo "<pre>", print_r($this->request->all(), 1), "</pre>"; }
我有空数组。
我创建了一个test.php
<?php echo "<pre>", print_r($_POST, 1), "</pre>"; ?>
如果将操作更改为test.php,没关系,我可以获得$ _POST数据。
我搜索了几个小时,没有解决方案可以解决我的问题。
答案 0 :(得分:1)
从构造中删除Request对象,并将其添加到更新函数中。
public function update(Request $request, $center, $id) {
$data = $request->all();
//code
}
编辑: 我为您添加了laravel文档的链接。
要通过依赖关系注入获取当前HTTP请求的实例,应在控制器方法上键入Illuminate \ Http \ Request类的提示。
访问this探索更多内容。
谢谢
答案 1 :(得分:0)
将路线命名为路线
Route::get('/p00001/edit/{center}/{id}','Dashboard\Programs\P00001Controller@edit')->name('edit');
Route::put('/p00001/update/{center}/{id}', 'Dashboard\Programs\P00001Controller@update')->name('update');
可见
<form id="mainform" action="{{route('update',['center' => 'JPN','id' => '3121-111907230007'])}}" method="post" class="form-horizontal">
{{ csrf_field() }}
{{ method_field('put') }}
<input type="text" value='1234' id="inpTest" name="inpTest">
<input type="submit" name="inpSubmit">
</form>
在控制器中
public function update(Request $request,$center, $id)
{
$data = $request->all();
echo "<pre>", print_r($_POST, 1), "</pre>";
echo "<pre>", print_r($request->all(), 1), "</pre>";
}
不要在构造函数中创建请求对象...在函数定义中创建。
答案 2 :(得分:0)
我发现了问题所在。我使用LaravelLocalization包。因此,如果未提供语言环境,它将重定向!重定向后,只有url参数!!
动作应该是
/ ja-JP / dashboard / programs / p00001 / update / JPN / 3121-111907230007