Где воздух гор - там тишина снегов, молчание камней и дремлет сила

Программирование Web

Использование accessors в моделях Laravel 8

2021-03-06 10:22:34







В Laravel нам доступен механизм accessors, которые позволяют получить доступ к полям модели. Для этого у нас есть встроенный метод get{Attribute}}Attribute, который позволяет нам получить доступ к любому полю таблицы базы данных.

Допустим, что у нас есть класс модели:


<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use phpDocumentor\Reflection\Types\Self_;

class Location extends Model {

protected $dates = ['deleted_at'];

protected $table = 'locations';

protected $fillable = [
'zip',
'address',
'city',
'country',

]

?>

Там нас есть несколько полей, которые описывают адрес. Чтобы получить красивый и удобный метод, возвращающий одной строкой все данные, нам нужно добавить в класс модели такой метод:



public function getFullAddressAttribute()
{
return $this->zip." ".$this→address." ".$this→city." ".$this→country;
}

После этого, мы легко можем вызвать наш метод таким образом, создав объект класса:


$location→full_address;

Важно, что мы используем этот метод, взяв только основную часть его название из определения. На этом все.


Здесь нет комментариев


Новый комментарий:
























Яндекс.Метрика