Метод getAttribute
Метод getAttribute вызывается у экземпляра модели Eloquent и возвращает значение указанного атрибута. Этот метод автоматически обрабатывает мутаторы, приведение типов и отношения. Первым параметром передаётся имя атрибута в виде строки. Если атрибут не существует, метод вернёт null. Метод также используется внутри магии Laravel для доступа к свойствам модели через $model->attribute.
Синтаксис
<?php
$value = $model->getAttribute($key);
?>
Пример
Давайте получим значение атрибута 'title' у модели Article:
<?php
namespace App\Http\Controllers;
use App\Models\Article;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$title = $article->getAttribute('title');
echo $title;
}
}
?>
Результат выполнения кода:
"article 1"
Пример
Давайте получим значение атрибута, который был изменён мутатором:
<?php
namespace App\Http\Controllers;
use App\Models\Article;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$full_name = $article->getAttribute('full_name');
echo $full_name;
}
}
?>
Результат выполнения кода:
"John Doe"
Пример
Давайте получим значение атрибута, который хранится в базе как JSON:
<?php
namespace App\Http\Controllers;
use App\Models\Article;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$meta = $article->getAttribute('meta');
print_r($meta);
}
}
?>
Результат выполнения кода:
["key1" => "value1", "key2" => "value2"]
Пример
Давайте попробуем получить несуществующий атрибут:
<?php
namespace App\Http\Controllers;
use App\Models\Article;
class ArticleController extends Controller
{
public function index()
{
$article = Article::find(1);
$non_existent = $article->getAttribute('non_existent');
var_dump($non_existent);
}
}
?>
Результат выполнения кода:
null
Смотрите также
-
метод
setAttribute,
который устанавливает значение атрибута модели -
метод
getOriginal,
который возвращает исходное значение атрибута -
метод
toArray,
который преобразует модель в массив -
метод
fresh,
который перезагружает модель из базы данных