Métodos elocuentes setVisible y setHidden en Laravel 9.x

Métodos elocuentes setVisible y setHidden en Laravel 9.x — Amit Merchant — Un blog sobre PHP, JavaScript y más

Laravel te brinda mucha flexibilidad cuando se trata de trabajar con modelos Eloquent. Puede personalizar fácilmente la forma en que desea trabajar con sus modelos.

Por ejemplo, puede utilizar el hidden propiedad para especificar qué atributos deben ocultarse del formulario JSON del modelo.

namespace App\Models;
 
use Illuminate\Database\Eloquent\Model;
 
class User extends Model
{
    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = ['api_token'];
}

Entonces, cuando intenta convertir el modelo en una matriz o JSON, el api_token el atributo estará oculto.

$user = User::find(1);

return $user->toArray();
/*
[
    "id" => 1,
    "name" => "Amit Merchant",
    "email" => "[email protected]",
]
*/

Pero, ¿qué sucede si desea ocultar algunos atributos del formulario JSON de la plantilla pero no desea especificarlos en el hidden ¿bienes? Por supuesto que puedes usar el makeHidden y makeVisible para ocultar los atributos que no desea mostrar o hacerlos visibles. Pero, ¿y si quieres ser explícito sobre lo que debe ser visible y lo que debe estar oculto?

Laravel 9.x viene con dos nuevos métodos en el Illuminate\Database\Eloquent\Model clase que te puede ayudar con esto.

Índice
  1. Él setVisible método
  2. Él setHidden método
  3. Conclusión

Él setVisible método

Él setVisible El método le permite especificar qué atributos deben estar visibles en el formulario JSON de la plantilla.

$user = User::find(1);

return $user->setVisible(['name', 'email'])->toArray();

/*
[
    "name" => "Amit Merchant",
    "email" => "
]
*/

A diferencia de lo existente makeVisible método, el setVisible no hará visibles los atributos especificados en el formulario JSON de la plantilla. En cambio, solo mostrará los atributos especificados en el formulario JSON del modelo. Por lo tanto, está seguro de que los atributos que no desea mostrar no se mostrarán.

Él setHidden método

Asimismo, la setHidden El método le permite especificar qué atributos deben ocultarse en el formulario JSON del modelo.

$user = User::find(1);

return $user->setHidden(['api_token'])->toArray();
/*
[
    "id" => 1,
    "name" => "Amit Merchant",
    "email" => "[email protected]",
]
*/

A diferencia de lo existente makeHidden método, el setHidden no ocultará los atributos especificados en el formulario JSON de la plantilla. En cambio, solo ocultará los atributos especificados en el formulario JSON de la plantilla. De esta manera, puede estar seguro de que los atributos que no desea que se oculten no se ocultarán.

Conclusión

Él setVisible y setHidden Los métodos son muy útiles cuando desea ocultar o mostrar explícitamente ciertos atributos en el formato JSON del modelo, pero no desea especificarlos en el hidden bienes. Además, estos métodos no revelan atributos que no desea mostrar u ocultar, que es su USP principal.

Si quieres conocer otros artículos parecidos a Métodos elocuentes setVisible y setHidden en Laravel 9.x puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas