Laravel简单地在表中创建新行

时间:2013-11-15 17:08:50

标签: laravel-4

你好我是Laravel的新手,我无法从表单向数据库添加数据。我只有一个表单,只有一个简单的视图。控制器有2个动作(用于视图形式和创建数据库行)。

应用/ routes.php文件

Route::get('/', 'FrontendController@index');
Route::post('/', 'FrontendController@submit');

应用/视图/ index.blade.php

{{Form::open(array('action'=>'FrontendController@submit','class'=>'form-horizontal','role'=>'form'))}}
{{Form::text('nazev_firmy',Input::old('nazev_firmy'), array('class'=>'form-control'))}}
{{Form::submit('Send', array('class'=>'btn btn-primary submit'))}}
{{Form::close()}}

/app/controllers/FrontendController.php

class FrontendController extends BaseController {
        public function index()
    {
        return View::make('index');
    }

    public function submit()
    {
        $inzerat = new Inzerat;

        $inzerat->nazev_firmy = Input::post('nazev_firmy');
        $inzerat->save();

        return View::make('index');
    }

}

应用/模型/ Inzerat.php

<?php

class Inzerat extends Eloquent {

    protected $table = 'inzeraty'; 
    public $timestamps = false; 

}

点击提交按钮后出现错误

Call to undefined method Illuminate\Http\Request::post() 

我正在使用Laravel 4.0

我在这里做错了什么?谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

在laravel中,使用:: get()从请求中检索所有输入。你只需要改变

$inzerat->nazev_firmy = Input::post('nazev_firmy');

要:

$inzerat->nazev_firmy = Input::get('nazev_firmy');