Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 发布Laravel表单不起作用_Php_Forms_Laravel - Fatal编程技术网

Php 发布Laravel表单不起作用

Php 发布Laravel表单不起作用,php,forms,laravel,Php,Forms,Laravel,我正在laravel中设置一个简单的表单: 这是路由文件: Route::get('backoffice/upload', [ 'as' => 'backoffice/upload', 'uses' => 'UploadController@uploadForm']); Route::post('backoffice/saveimage',[ 'as' => 'backoffice/sav

我正在laravel中设置一个简单的表单:

这是路由文件:

Route::get('backoffice/upload',    [ 'as'    => 'backoffice/upload', 
                                 'uses'  => 'UploadController@uploadForm']);

Route::post('backoffice/saveimage',[ 'as'    => 'backoffice/saveimage',
                                 'uses'  => 'UploadController@saveImage']);
这是控制器:

class UploadController extends \BaseController
{

public function uploadForm()
{
return View::make("backoffice.upload.create");
}

public function saveImage()
{
return "Uploading...";
}

} 
这是视图文件:

<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() }}
这对我来说毫无意义。到目前为止,我在处理表单时一直使用route::resource,并且没有问题。我正试图用GET和POST做一个简单的表单,我的悲伤无止境。我错过了什么


此外,如果我修改routes.php并将其从post改为any,然后打开一个浏览器窗口并键入:然后我会收到消息“upload…”,这样该部分就可以正常工作。

试试这个,确保在
app/config/app.php处正确配置url

{{Form::open(['url'=>'backoffice/saveimage'])}}
  //code
{{Form::close()}}

找到了解决办法。在制作系统的后台时,我重新使用了frontoffice模板,但删除了所有多余的模板。至少我是这么想的。然而,前台标题模板有一个表单,我只是部分删除了它

所以问题是有一个我不知道的开始表单标签。因此,当我点击提交到我的表单时,它实际上正在提交到另一个表单

因为另一种形式没有动作,所以它是默认的


当然,如果我刚刚验证了HTML,就会立即显示出来。这里学到的经验是在提交问题之前验证我的html

恐怕也是这样。无论您使用路由、操作还是URL,generateed HTML都是相同的:action=”“在所有情况下,生成的HTML正是我想要的。然而,出于某种原因,它似乎把我带回了最初的形式。然而,如果我只是打字hxxp://my.local/backoffice/saveimage 在浏览器中,我会收到我希望看到的消息。“正在上载…”请尝试routes.php中的Route::GET而不是Route::POST。我认为Laravel会自动地将所有类型的请求(获取、删除、放置)转换为post。这不会造成任何问题。如果你使用了覆盖所有基础的ANY,它仍然不起作用。试着注释一下。我在一个表单中有一个表单,我得到了这个错误。所以表单中没有表单!多亏了你的回答,我才能够诊断出这个问题。是的@Puzbie,我非常感谢在花了6个多小时调试我所有的应用程序之后,我找到了你的答案,但没有结果,直到我发现可怜的表单标签没有任何动作就打开了。这导致应用程序中的多个表单失败。我现在需要一杯冰镇啤酒。
http://my.local/backoffice/upload?pz_session=x9g4SW2R7t9kia2B8HRJTm1jbLRl3BB8sPMwvgAM&_token=x9g4SW2R7t9kia2B8HRJTm1jbLRl3BB8sPMwvgAM&newfilename=ddd
{{Form::open(['url'=>'backoffice/saveimage'])}}
  //code
{{Form::close()}}