Laravel simples criando nova linha na tabela
-
20-12-2019 - |
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.
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