【问题标题】:laravel 5.1 form and routing issuelaravel 5.1 表单和路由问题
【发布时间】:2016-01-11 22:21:36
【问题描述】:

嗨,我正在尝试从我的表单中获取输出以保存,即使我尝试回显(print_r)输出,但它只是转到发布请求并且不回显任何输出。

我的路线如下:

Route::controller('stove', 'StoveController', [
    'anyData'  => 'stove.data',
    'getIndex' => 'stove',
]);

Route::get('newstove', 'StoveController@addData');
Route::post('newstove', 'StoveController@store');

我的控制器:

public function addData()
{

    return view('stoves.new');
}

public function store()
{
    $input = Request::all();
    Stove::create($input);

    return redirect('stove');
}

最后我的表格是

<form class="form-horizontal" action="/stove">
    <fieldset>
        <div class="control-group">
            <label class="control-label" for="stoveno">Stove Number</label>
            <div class="controls">
                <input type="text" class="span4" id="stoveno" value="CP001000">
            </div> <!-- /controls -->
        </div> <!-- /control-group -->

        <div class="control-group">
            <label class="control-label" for="refno">Ref Number</label>
            <div class="controls">
                <input type="text" class="span4" id="refno" value="cff001">
            </div> <!-- /controls -->
        </div> <!-- /control-group -->

        <div class="control-group">
            <label class="control-label" for="manufacturedate">Manufacture Date</label>
            <div class="controls">
                <input type="date" class="span4" id="manufacturedate">
            </div> <!-- /controls -->
        </div> <!-- /control-group-->

        <div class="form-actions">
            <button type="submit" class="btn btn-primary">Save</button>
            <button class="btn">Cancel</button>
        </div> <!-- /form-actions -->
    </fieldset>
</form>

谢谢

【问题讨论】:

  • 表单的默认方法是 GET。您的路线正在寻找 Route::post()。尝试将 method='POST' 设置为表单属性。

标签: php forms laravel-5.1


【解决方案1】:

将表单的第一行更改为以下内容..

<form class="form-horizontal" action="/newstove" method="post">

这应该通过 POST 方法将您的表单提交到您的路线文件中的最后一条路线。

据我所知,您的路线文件的第一部分不是必需的...

Route::controller('stove', 'StoveController', [
   'anyData'  => 'stove.data',
   'getIndex' => 'stove',
]);

【讨论】:

  • 谢谢你解决了我所有的问题,包括我以后要解决的问题。
【解决方案2】:

Route::post('newstove', 'StoveController@store');

您需要在表单中添加 method="post"。并将 action="/stove" 更改为 action="/newstove"

另外,是不是 Route::resource 用于将控制器添加到路由列表中?

【讨论】:

  • Route::controller 用于隐式控制器。 Route::resource 用于 restful 资源控制器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 2010-09-27
  • 2023-03-28
相关资源
最近更新 更多