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

Laravel: problema no model User


Frank K Hosaka

Pergunta

Laravel é um impressionante programa que estou tentando aprender desde 2022.

Eu só tenho o módulo básico, mas consegui encontrar na internet uma rotina para fazer login. Hoje eu vi que o VS Code reclamou que o código de login tem erro, e com a ajuda da Gemini eu consegui consertar:

arquivo app.Http.Controllers.CustomAuthController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use Illuminate\Support\Facades\Session;
class CustomAuthController extends Controle
{
    public function alterarSenha(request $request)
    {
        if($request->input('password'))
        {
            $senha=$request->input('password');
            User::where('id',Auth::user()->id)->update(['senha'=>Hash::make($senha)]);
            return $this->signOut();
        }
        $email=Auth::user()->email;
        return view('auth.alterarSenha',['email'=>$email]);
    }

    public function index()
    {
        return view('auth.login');
    }

    public function customLogin(Request $request)
    {
        
        $request->validate(['email' => 'required','password' => 'required', ]);
        $credentials = $request->only('email', 'password');
        if (Auth::attempt($credentials)) 
        {
            return redirect()->intended('dashboard')->withSuccess('Signed in');
        }
        return redirect()->back()->with('mensagem','Dados inválidos!');
    }

    public function registration()
    {
        return view('auth.registration');
    }

    public function customRegistration(Request $request)
    {
        $request->validate(['name' => 'required','email' => 'required|email|unique:users',
                'password' => 'required|min:6',]);
        $data = $request->all();
        $check = $this->create($data);
        return redirect("dashboard")->withSuccess('You have signed-in');
    }

    public function create(array $data)
    {
        return User::create(['name' => $data['name'],
            'email' => $data['email'],'password' => Hash::make($data['password'])]);
    }

    public function dashboard()
    {
        if(Auth::check())
        {
            return view('menu');
        }
        return redirect("login")->withSuccess('You are not allowed to access');
    }

    public function signOut() 
    {
        Session::flush();
        Auth::logout();
        return Redirect('login');
    }
}

Depois que a Gemini me ajudou a consertar o problema, eu não consegui mais logar no programa. Foi aí que eu lembrei que mudei um monte de coisa, eu não tenho uma tabela User e sim tbusuarios, onde o nome do campo é senha e não password. Comentei isso com a Gemini, e mais uma vez ela ajudou a consertar o problema:

 

arquivo app.Models.User.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;
    protected $table="tbusuarios";
    protected $fillable = ['nome','email','senha',];
    protected $hidden = ['senha', ];

    public function getAuthPassword()
    {
        return $this->senha;
    }
}

Graças à Gemini, consegui logar novamente no Laravel. O Laravel tem recursos para deixar mais turbinado, mas o meu problema é o CSS Tailwinds, eu achei bem difícil trabalhar com ele. Agora que eu sei um pouco mais sobre classe pretendo melhorar o código no Laravel, ele está cheio de gambiarra.

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,5k
×
×
  • Criar Novo...