Ir para conteúdo
Fórum Script Brasil
  • 0

A formatação de número no Laravel


Frank K Hosaka

Pergunta

No arquivo exemplo.blade.php tenho um código assim:

<input value={{$dados->valor}}>

O <input> aqui serve para mostrar o valor de um lançamento contábil, mas também serve para receber novo valor para alterar o lançamento contábil.

Eu não lembro como resolvi o problema da formatação no PHP, mas o Google me pediu para estudar a formatação no PHP para resolver esse drama no Laravel.

Mas para a minha surpresa, ao invés de resolver o problema no view exemplo.blade.php, ele pede para resolver no model tbdiario, assim:

 

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class tbdiario extends Model{
    use HasFactory;
    protected $table="tbdiario";
    protected $primaryKey="docto";
    protected $fillable=['dia','contad','contac','valor','hist'];
    public function getValorAttribute($value){
        return number_format($value,2,",",".");}
    public function setValorAttribute($value){
	$value=str_replace(".","",$value);
        $this->attributes['valor']=str_replace(',','.',$value); }

As duas útimas funções é que fazem a mágica da formatação, ele mostra o valor no formato brasileiro, mas na hora que você digita o novo valor, ele vai traduzir no formato PHP. É muito engenhoso! Antes do view exibir o valor de um campo, ele vai procurar no model se existe uma função get[Campo]Attribute ou set[Campo]Attribute no model. Ainda não sei se é possível imitar um negócio desses no PHP.

Mas o que eu mais gostei foi a atualização de um registro contábil. No PHP, eu tinha que olhar cada campo para ver se foi alterado para depois atualizar. Já o Laravel é bem mais simples:

 

<?php
namespace App\Http\Controllers;
use App\Models\tbdiario;
use App\Models\tbsupervariavel;
use Illuminate\Http\Request;

class DiarioController extends Controller {

public function diario(request $request) {
	if($request->input('docto')){
		$docto=tbdiario::find($request->input('docto'));
		$docto->fill($request->input())->save();}}

Para mim, está valendo a pena estudar o Laravel. Essa é a primeira vez que aprendo a olhar uma tabela como uma classe com propriedade e métodos. O certo é estudar o PHP para depois ver o Laravel. Estou fazendo o inverso, e com isso já consertei o banco de dados, e também estou consertando o meu projeto que está em PHP.

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...