Laravel 4 - 表单提交以更新 MySQL 表

Posted

技术标签:

【中文标题】Laravel 4 - 表单提交以更新 MySQL 表【英文标题】:Laravel 4 - Form submit to update MySQL table 【发布时间】:2013-12-18 05:05:29 【问题描述】:

我正在尝试更新名为“用户”的数据库表中的数据,特别是 3 列。但现在我只是试图与控制器通信以获得回声! 我有以下代码:

我的视图文件(dashboard.blade.php)中有一个表单:

  <div class="small-12">
     Form::open(array('action' => 'UsersController@putCoordinates')) 
    <div class="row">
      <div class="small-3 columns">
        <label for="city" class="right inline"><i class="fa fa-chevron-right"></i></label>
      </div>
      <div class="small-9 columns">
         Form::text('city', null, array('id'=>'city', 'placeholder'=>'current city', 'required'=>'required')) 
      </div>
    </div>
    <div class="row">
      <div class="small-3 columns">
        <label for="markerLat" class="right inline"><i class="fa fa-chevron-right"></i></label>
      </div>
      <div class="small-9 columns">
         Form::text('markerLat', null, array('id'=>'markerLat', 'placeholder'=>'latitude', 'required'=>'required')) 
      </div>
    </div>
    <div class="row">
      <div class="small-3 columns">
        <label for="markerLng" class="right inline"><i class="fa fa-chevron-right"></i></label>
      </div>
      <div class="small-9 columns">
         Form::text('markerLng', null, array('id'=>'markerLng', 'placeholder'=>'longitude', 'required'=>'required')) 
      </div>
    </div>
    <div class="row">
      <div class="small-12 columns">
         Form::button('Update', array('class'=>'button small addMe postfix', 'id'=>'addMe'))
      </div>
    </div>
     Form::close() 
  </div>

我创建的路线是:

Route::controller('users', 'UsersController');

在控制器文件(UsersController)中我有以下功能:

    public function putCoordinates()   
        echo "It works!";
    

但到目前为止,它似乎不起作用..我试图将我的打开表单更改为:

 Form::open(array('url'=>'users/update', 'class'=>'form')) 

但它不起作用,我没有收到任何错误,我只是按“更新”并没有任何反应..

任何帮助将不胜感激,我必须在这里遗漏一些非常简单的东西。 谢谢!

【问题讨论】:

【参考方案1】:

默认方法是 POST,所以你需要告诉 Laravel 使用 PUT 方法创建表单:

 Form::open(array('method' => 'PUT', 'action' => 'UsersController@putCoordinates')) 

而且,要创建提交按钮,您必须使用:

 Form::submit('Update', array('class'=>'button small addMe postfix', 'id'=>'addMe'))

【讨论】:

我更改了那行代码,但它仍然没有在 putCoordinates() 中回显任何内容...我是否遗漏了提交按钮中的任何内容? Form::button('Update', array('class'=>'button small addMe postfix', 'id'=>'addMe'))

以上是关于Laravel 4 - 表单提交以更新 MySQL 表的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 CSRF 表单通过 Ajax 调用提交

LARAVEL-提交表单时未更新数据库

使用laravel提交表单以处理时出现MethodNotAllowedHttpException?

Laravel 4.1 _token 表单提交错误

text 获取表单令牌以在Laravel中提交值

表单提交时Laravel 4.1 _token错误