Laravel / Blade Form PUT方法,dd(Input :: all());

时间:2015-03-05 09:38:18

标签: php laravel blade

您好我在contact.blade.php发送了一份表格。我阅读为了使用PUT方法你必须创建一个包含方法的隐藏输入字段。

      @if($do == 'edit')
        {{ Form::model($contact, array('method' => 'PUT', 'route' => array('contact.update', $contact->id), 'id' => $do=='edit' ? $do.$contact->id : $do.$contact_type_id, 'form_id' => $do=='edit' ? $do.$contact->id : $do.$contact_type_id)) }}
        {{ Form::hidden('_method', 'PUT') }}
      @endif
        ....
        {{ Form::submit('speichern', array('class' => 'btn btn-primary')) }}
        </div>
      {{ Form::close() }}

路线:

Route::put('/contact/{id}', array(
    'uses'      => 'ContactController@update',
    'as'        => 'contact.update'
));

控制器:

public function update($id)
{
    dd(Input::all());
    // //get user account data
    // $user = User::find( Auth::id() );
    // // validate input
    // $v = Contact::dataValidation( Input::all() );
    return Redirect::Route('user.edit', 1)->withSuccess("<em>Hans</em> wurde gespeichert.");

Q1: 一旦我调用dd(Input::all());我就不再被重定向了,而是看到一个带有我的表单值的json。

Q2: 我只是调试这个,所以我没有编程。所以我的第二个问题是: 根据我的理解dd(Input::all());获取我的所有表单数据。所以我不需要在任何地方存储它吗?

2 个答案:

答案 0 :(得分:1)

Q1 :dd()会终止脚本,因此您无法重定向。它被用作一种工具来基本上打破并检查正在发生的事情。

http://laravel.com/docs/4.2/helpers

Q2 :您仍然需要一个模型来将Input::all数据输入。 Input :: all只是提取提交的数据,它不会对它做任何事情。它最终取决于您的使用案例,有时您可能希望通过电子邮件发送数据,但显然大多数时候您会将其存储在持久层(读取数据库/数据存储区)

答案 1 :(得分:0)

问题1 当您使用DD时,它将显示数据并停在该行。

DD

  

转储给定变量并结束脚本执行。

您可以在DD会话中阅读更多信息DD

问题2 我不确定第二个问题,但如果你想从所有输入中获得价值,你可以Input::all(); 获取请求会话的所有输入中的更多信息All input