Изучение пользовательских столбцов в моделях Laravel: подробное руководство

Laravel, популярный PHP-фреймворк, предоставляет элегантный и мощный инструмент объектно-реляционного сопоставления (ORM) под названием Eloquent. Eloquent позволяет разработчикам работать с базами данных, используя выразительный и свободный синтаксис. В этой статье мы углубимся в использование пользовательских столбцов в моделях Laravel и рассмотрим различные методы взаимодействия с ними. Давайте начнем!

  1. Определение настраиваемых столбцов.
    Чтобы определить настраиваемые столбцы в моделях Laravel, вы можете использовать свойство $appendsи методы доступа. Свойство $appendsпозволяет указать дополнительные атрибуты, которые следует включать при сериализации модели в массив или JSON. Вот пример:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
    protected $appends = ['discounted_price'];
    public function getDiscountedPriceAttribute()
    {
        // Calculate and return the discounted price based on some condition
    }
}
  1. Доступ к настраиваемым столбцам.
    После того как вы определили настраиваемый столбец, вы можете получить к нему доступ, как если бы он был обычным атрибутом модели. Eloquent автоматически вызывает метод доступа, определенный в модели, при доступе к настраиваемому столбцу. Вот пример:
$product = Product::find(1);
$discountedPrice = $product->discounted_price; // Accessing the custom column
  1. Запрос настраиваемых столбцов.
    Вы также можете использовать настраиваемые столбцы в запросах к базе данных. Laravel предоставляет удобный способ запроса пользовательских столбцов с помощью метода selectRaw(). Вот пример:
$products = Product::select('id', 'name')
    ->selectRaw('(price - discount) as discounted_price')
    ->get();
  1. Сортировка по настраиваемым столбцам.
    Сортировать по настраиваемым столбцам очень просто, используя метод orderBy(). Вы можете указать имя пользовательского столбца в качестве аргумента метода. Вот пример:
$products = Product::orderBy('discounted_price', 'desc')->get();
  1. Фильтрация по условиям настраиваемого столбца.
    Чтобы фильтровать записи на основе условий настраиваемого столбца, вы можете использовать метод whereRaw(). Вот пример:
$products = Product::whereRaw('discounted_price > 100')->get();

В этой статье мы рассмотрели концепцию настраиваемых столбцов в моделях Laravel. Мы узнали, как определять настраиваемые столбцы, получать к ним доступ, запрашивать и сортировать по ним, а также фильтровать записи на основе условий настраиваемых столбцов. Использование пользовательских столбцов может добавить гибкости и функциональности вашим приложениям Laravel. Начните экспериментировать со специальными столбцами в своих моделях и раскройте весь потенциал Laravel Eloquent ORM.