- Пользовательские методы: вы можете определить свои собственные методы в классе модели для обработки определенных функций. Эти методы не предоставляются Laravel по умолчанию, но могут быть добавлены в соответствии с потребностями вашего приложения. Вот пример:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MyModel extends Model
{
public function customMethod()
{
// Custom method logic here
}
}
- Области запросов: Laravel позволяет определять области запросов внутри класса модели. Области предоставляют способ инкапсулировать ограничения многократного использования запроса. Вот пример:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MyModel extends Model
{
public function scopeActive($query)
{
return $query->where('status', 'active');
}
}
Это позволит вам использовать область activeв вашей модели:
$activeModels = MyModel::active()->get();
- Аксессоры и мутаторы: Laravel предоставляет аксессоры и мутаторы для управления атрибутами модели при получении или установке значений. Эти методы позволяют вам определять собственную логику для манипулирования атрибутами. Вот пример:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MyModel extends Model
{
public function getPriceAttribute($value)
{
return '$' . number_format($value, 2);
}
public function setPriceAttribute($value)
{
$this->attributes['price'] = str_replace('$', '', $value);
}
}
В этом примере метод доступа getPriceAttributeформатирует атрибут priceсо знаком доллара и двумя десятичными знаками при его получении, а setPriceAttributeмутатор удаляет знак доллара при установке атрибута.
Это всего лишь несколько примеров методов, которые можно добавить в модели Laravel для расширения их функциональности. Существует гораздо больше возможностей в зависимости от требований вашего приложения.