Agregar mutadores al model chat
Comprar curso

23. Agregar mutadores al model chat

En esta sección se explicará cómo agregar mutadores al modelo de chat en la aplicación de chat. Se mostrará cómo utilizar los mutadores para modificar los datos de entrada antes de guardarlos en la base de datos.


2 comentarios

Inicia sesión para comentar

Comentarios:

  • Francisco Morales Sánchez

    Francisco Morales Sánchez hace 1 año

    Hola
    intentar mostrar un chat que tiene mensajes. arroja este error:
    ```
    SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous
    ```
    Modelo Chat.php





    Vista 
    el error lo marca por acá en chat-component.blade.php


    Agradezco la ayuda
     

    • Victor Arana Flores hace 1 año

      Hola, el error te dice que la consulta es ambigua, ya que no sabe a que id estas haciendo referencia. Trata de hacer la conulsta algo asi: “tabla.id”

    • Francisco Morales Sánchez hace 1 año

      asi ha quedado el codigo :
      public function image():Attribute
      {
          return new Attribute(
              get: function() {
                  if ($this->is_group) {
                      return Storage::url($this->image_url);
                  }
                  $user = $this->users()->where('users.id' ,'!=', auth()->id())->first();
                  return $user->profile_photo_url;
              }
          );
      }

      De momento ya no  da el error de ambiguedad

  • Jafet Solano

    Jafet Solano hace 1 año

    sabes por que me esta ocasionando que no se muestren las iniciales ? solo pasa en los contactos que ya se le ha enviado un mensaje 
    • Jafet Solano hace 1 año

      listo ya lo solucione… la cuestión era que el mutador image no me generaba la url entonces al poner {{$chat→image}} en la vista era null la propiedad. anexo el codigo del mutador por si alguien tiene el mismo problema.

       

          public function getImageAttribute()

          {

              if ($this->is_group) {

                  return Storage::url($this->image_url);

              }

         

              $user = $this->users->where('id', '!=', auth()->id())->first();

              return $user->profile_photo_url;

          }

       

       

      cabe mencionar que el mutador del name si me funciono correctamente como en el video.

    • Victor Arana Flores hace 1 año

      Hola, que bueno que lo solucionaste, y gracias por el aporte :D