Mostrar mensajes
Comprar curso

8. Mostrar mensajes


1 comentarios

Inicia sesión para comentar

Comentarios:

  • Gerald Flores Pomari

    Gerald Flores Pomari hace 5 meses

    Hola Victor,  tengo el siguiente error en la validación 
    Illuminate\Validation\Factory::make(): Argument #3 ($messages) must be of type array, null given, called in C:\xampp\htdocs\laravel\webSockets\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 361
    Mi codigo de la validación 
    public  function save(){
            $this->validate([
                'content' => 'required|min:3',
            ]);  
    
            Message::create([
                'content' => $this->content,
                'user_id' => auth()->id()
            ]);
    
            //limpiar contenido
            $this->content = '';
            $this->getMessages();
        }
        
    • Bernal Fuentes hace 4 días

      <?php


       

      namespace App\Livewire;


       

      use App\Events\MessageSend;

      use App\Models\Message;

      use Livewire\Component;

      use Livewire\Attributes\On;


       

      class ManageMessages extends Component

      {

      public $content = '';


       

      public function mount()

      {

      //

      }


       

      public function getMessagesProperty()

      {

      return Message::with('user')->latest()->get();

      }


       

      public function save()

      {

      $this->validate([

      'content' => 'required|min:5|max:500',

      ]);


       

      Message::create([

      'user_id' => auth()->id(),

      'content' => $this->content,

      ]);


       

      $this->content = '';


       

      MessageSend::dispatch();


       

      session()->flash('message', 'Mensaje enviado correctamente!');

      }


       

      #[On('echo:chat,MessageSend')]

      public function refreshMessages()

      {

      // Este método se ejecutará cuando se reciba el evento MessageSend

      // Livewire automáticamente re-renderizará el componente

      $this->render();

      }


       

      public function getMensajes()

      {

      return Message::with('user')->latest()->get();

      }


       

      public function sendMessage()

      {

      $this->validate([

      'content' => 'required|min:1|max:500',

      ]);


       

      Message::create([

      'user_id' => auth()->id(),

      'content' => $this->content,

      ]);


       

      $this->content = '';

      }


       

      public function render()

      {

      return view('livewire.manage-messages', [

      'mensajes' => $this->getMensajes()

      ]);

      }

      }


       

    • Bernal Fuentes hace 4 días

      Es por esto:   $this->getMessages(); luego se cambio