Pergunta

Olá, sou novo no Laravel e não consigo adicionar dados ao banco de dados a partir do formulário.Eu tenho uma visualização simples com apenas um formulário.O controlador tem 2 ações (para visualizar o formulário e para criar linhas de banco de dados).

app/rotas.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');
    }

}

app/models/Inzerat.php

<?php

class Inzerat extends Eloquent {

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

}

ERRO APÓS CLICAR NO BOTÃO ENVIAR

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

Estou usando Laravel 4.0

O que eu fiz de errado aqui?Obrigado pela ajuda.

Foi útil?

Solução

No laravel, você usa ::get() para recuperar todas as entradas da solicitação.Você só precisa mudar

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

Para:

$inzerat->nazev_firmy = Input::get('nazev_firmy');
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top