Larave простое создание новой строки в таблице

StackOverflow https://stackoverflow.com//questions/20006702

  •  20-12-2019
  •  | 
  •  

Вопрос

Привет, я новый в Laravel, и я не могу добавлять данные в базу данных из формы.У меня простой вид с одной формой.Контроллер имеет 2 действия (для вида видов и для создания строк БД).

Приложение / Маршруты .php

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

APP / Views / 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

Что я сделал неправильно здесь?Спасибо за вашу помощь.

Это было полезно?

Решение

в Laravel, вы используете :: get (), чтобы получить все входные данные по запросу.Вам просто нужно изменить

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

to:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top