我正在 laravel 中设置一个简单的表单:
这是路由文件:
Route::get('backoffice/upload', [ 'as' => 'backoffice/upload',
'uses' => 'UploadController@uploadForm']);
Route::post('backoffice/saveimage',[ 'as' => 'backoffice/saveimage',
'uses' => 'UploadController@saveImage']);
这是 Controller :
class UploadController extends \BaseController
{
public function uploadForm()
{
return View::make("backoffice.upload.create");
}
public function saveImage()
{
return "Uploading...";
}
}
这是 View 文件:
<h1>Upload Image</h1>
{{ Form::open(['action' => 'UploadController@saveImage']) }}
<div class='formfield'>
{{ Form::label('newfilename','New File Name (optional):') }}
{{ Form::input('text','newfilename') }}
{{ $errors->first('newfilename') }}
</div>
<div class='formfield'>
{{ Form::submit($action,['class'=>'button']) }}
{{ Form::btnLink('Cancel',URL::previous(),['class'=>'button']) }}
</div>
{{ Form::close() }}
//生成的 HTML
<h1>Upload Image</h1>
<form method="POST" action="http://my.local/backoffice/saveimage" accept-charset="UTF-8"><input name="_token" type="hidden" value="x9g4SW2R7t9kia2B8HRJTm1jbLRl3BB8sPMwvgAM">
<div class='formfield'>
<label for="newfilename">New File Name (optional):</label>
<input name="newfilename" type="text" id="newfilename">
</div>
<div class='formfield'>
<input class="button" type="submit" value="Create">
</div>
</form>
所以,如果我转到:http://my.local/backoffice/upload我得到了带有上面 HTML 的表单。
但是,如果我输入任何内容,然后单击“提交”,我将返回到表单,但现在具有以下 URL:
http://my.local/backoffice/upload?pz_session=x9g4SW2R7t9kia2B8HRJTm1jbLRl3BB8sPMwvgAM&_token=x9g4SW2R7t9kia2B8HRJTm1jbLRl3BB8sPMwvgAM&newfilename=ddd
这对我来说毫无意义。到目前为止,我在处理表单时一直使用route::resource,并且没有任何问题。我正在尝试使用 GET 和 POST 制作一个简单的表单,并且悲伤不已。我错过了什么?
此外,如果我修改routes.php并将其从post更改为any,然后打开浏览器窗口并输入:http://my.local/backoffice/saveimage然后我收到消息“正在上传...”,因此该部分工作正常。
最佳答案
找到了解决方案。在制作系统后台时,我重新使用了前台模板,但删除了所有多余的部分。或者说我是这么想的。然而,前台标题模板有一个表单,我只删除了部分。
所以问题是有一个我不知道的开放 FORM 标签。因此,当我单击“提交到我的表单”时,它实际上正在提交到另一个表单。
由于其他表单没有任何操作,因此它默认为自身。
当然,如果我刚刚验证了 HTML,它就会立即显示出来。这里学到的教训是在提交问题之前验证我的 html!
关于php - 发布 Laravel 表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556046/