I set the date format for viewing to "d-m-Y", while the recording format is the "Y-m-d" bank.
However at the time of recording in the bank, something happens and the data is going in the format "mdY", and with that the data will be truncated, especially if the day is greater than 12, then the date goes to 31-12- 1969 automatically and that date is recorded in the bank.
Laravel 4.1 is installed, and the database is MySql.
Here are the codes:
controller
public function getEdit($id) {
$despesa = Despesas::find($id);
$despesa->valor = str_replace('.', ',', $despesa->valor);
$despesasOrigem = array('' => 'Selecione...') + DespesasOrigem::lists('descricao', 'id');
$despesasTipos = array('' => 'Selecione...') + DespesasTipo::lists('descricao', 'id');
return View::make('despesas.despesasEdit')
->with('despesa', $despesa)
->with('despesas_tipo_id', $despesasTipos)
->with('despesas_origem_id', $despesasOrigem);
}
public function postEdit() {
$dados = Input::all();
$dados['data'] = date('Y/m/d', strtotime($dados['data']));
$dados['users_id'] = Auth::User()->id;
$valida = Validator::make($dados, Despesas::$rules);
if ($valida->fails()) {
return Redirect::to('despesas/edit' . Input::get('id') )->withInput()->withErrors($valida);
} else {
$despesa = Despesas::find(Input::get('id'));
$despesa->descricao = $dados['descricao'] ;
$despesa->data = $dados['data'] ;
$despesa->valor = $str_replace(',', '.', $dados['valor']);
$despesa->users_id = $dados['users_id'] ;
$despesa->despesas_tipo_id = $dados['despesas_tipo_id'] ;
$despesa->despesas_origem_id = $dados['despesas_origem_id'] ;
$despesa->save();
$despesa = Despesas::find($despesa->id);
$despesasOrigem = array('' => 'Selecione...') + DespesasOrigem::lists('descricao', 'id');
$despesasTipos = array('' => 'Selecione...') + DespesasTipo::lists('descricao', 'id');
return View::make('despesas.despesasEdit')
->with('despesa', $despesa)
->with('despesas_tipo_id', $despesasTipos)
->with('despesas_origem_id', $despesasOrigem)
->with('sucesso', 'Despesa atualizada com sucesso!');
}
}
view
@extends('templates.master')
@section('conteudo')
<h2>Editar Despesa</h2>
@if(isset($sucesso))
{{ Alert::success($sucesso) }}
@endif
{{ Form::open() }}
{{ Form::hidden('id', $despesa->id) }}
{{ Form::label('Descrição') }}
{{ Form::input('text', 'descricao', $despesa->descricao) }}
@if($errors->first('descricao') != null)
{{ Alert::warning($errors->first('descricao', 'O campo descrição é obrigatorio.'))}}
@endif
{{ Form::label('Valor') }}
{{ Form::input('text', 'valor', $despesa->valor) }}
@if($errors->first('valor') != null)
{{ Alert::warning($errors->first('valor', 'O campo valor é obrigatório'))}}
@endif
{{ Form::label('Data da despesa') }}
{{ Form::input('text', 'data', date('d/m/Y', strtotime($despesa->data))) }}
@if($errors->first('data') != null)
{{ Alert::warning($errors->first('data', 'O campo data é obrigatório'))}}
@endif
{{ Form::label('despesas_tipo_id', 'Tipo:') }}
{{ Form::select('despesas_tipo_id', $despesas_tipo_id, $despesa->despesas_tipo_id) }}
@if($errors->first('despesas_tipo_id') != null)
{{ Alert::warning($errors->first('despesas_tipo_id', 'O campo Tipo de Despesa é obrigatório'))}}
@endif
{{ Form::label('despesas_origem_id', 'Origem:') }}
{{ Form::select('despesas_origem_id', $despesas_origem_id, $despesa->despesas_origem_id) }}
@if($errors->first('despesas_origem_id') != null)
{{ Alert::warning($errors->first('despesas_origem_id', 'O campo Origem da Despesa é obrigatório'))}}
@endif
{{ Form::submit('Enviar')}}
{{ Form::close() }}
@stop
route
Route::controller('despesas', 'DespesasController');
models
<?php
class Despesas extends Eloquent {
protected $table = "despesas";
protected $softDelete = true;
/**
* Regras de validação da table despesas
*
* @return array
*/
public static $rules = array (
'descricao' => 'required',
'valor' => 'required|numeric',
'data' => 'required|date',
'despesas_tipo_id' => 'required',
'despesas_origem_id' => 'required',
'users_id' => 'required'
);
protected $guarded = array('id');
public function despesasTipo()
{
return $this->belongsTo('DespesasTipo','despesas_tipo_id');
}
public function despesasOrigem()
{
return $this->belongsTo('DespesasOrigem','despesas_origem_id');
}
public function user()
{
return $this->belongsTo('User','users_id');
}
}