php - 发布 Laravel 表单不起作用

标签 php forms laravel

我正在 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/

相关文章:

javascript - 如何在不下载的情况下授予对音频文件的访问权限

php - 在 Javascript 的帮助下使用 PHP 为文本框设置值

php - 使用PHP在Mysql中导入CSV文件,但只导入了236行中的214行

ruby-on-rails - 在模型中存储键值序列化的额外字段(Rails)

javascript - cfform 目标 iframe 页面丢失

javascript - 将独立的 View 文件放入codeigniter中另一个html中的div中

css - 当我运行我的 jsp 页面时,只打印了一半的表单

laravel - 如何在 PHP 中从 Guzzle Http 获取响应

php - 如何从 laravel 中的另一个数据库表中检索值?

php - 如何在 laravel 中使用 sql NOW( ) 函数