Los “accesors” y “mutators” en Laravel son de mucha utilidad. Nos ayudan al momento de presentar ó guarda los datos, dándole el formato que necesitamos. Los “accessor” son un método de implimentar los “getters” y los “mutators” son la forma de implementar los “setters”.
Supongamos, necesitamos que el nombre de una compañía siempre se muestre en mayúsculas. Para ello, creamos un método llamado getNameAttribute() en el modelo Bussiness. El “accessor” será llamado automáticamente cuando Eloquent trate de recibir el atributo “name”.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Bussiness extends Model
{
/**
* Get the namee.
*
* @param string $value
* @return string
*/
public function getNameAttribute($value)
{
return strtoupper($value);
}
}
Como se observa, el valor original se pasa al “accesor”, permitiendo la manipulación, es este caso, convertirlo a mayúsculas. Así cuando se acceda al attributo “name”, Eloquent llama al accessor y se obtiene el valor en mayusculas.
$bussiness = App\Bussiness::find(1);
$name = $user->name;