> PHP 프레임워크 > Laravel > Laravel의 필드 변환에 대한 기본 지식에 대해 이야기 해 보겠습니다.

Laravel의 필드 변환에 대한 기본 지식에 대해 이야기 해 보겠습니다.

PHPz
풀어 주다: 2023-04-06 16:50:31
원래의
1107명이 탐색했습니다.

Laravel을 사용하는 과정에서 필드를 변환해야 하는 상황을 자주 접하게 됩니다. 이 글에서는 필드 변환 유형을 사용자 정의하는 방법을 포함하여 Laravel의 필드 변환 기본 사항에 대해 자세히 살펴보겠습니다.

Laravel의 필드 변환은 데이터베이스에 저장된 타임스탬프 형식을 사람이 읽을 수 있는 시간 형식으로 변환하는 등 다양한 비즈니스 요구 사항을 충족하기 위해 모델 속성을 한 형식에서 다른 형식으로 변환하는 데 사용됩니다.

Laravel은 날짜, 시간, JSON, 배열 및 기타 유형을 포함한 다양한 필드 변환 유형을 모델에서 정의함으로써 모델 속성을 쉽게 변환할 수 있습니다. Laravel에서 필드 변환 유형을 정의하는 방법을 살펴보겠습니다.

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $casts = [
        'published_at' => 'datetime',
        'meta' => 'array',
    ];
}
로그인 후 복사

위의 예에서는 published_atdatetime 유형으로 변환하고 meta/ code> <code>배열 형식으로 변환합니다. 이러한 방식으로 데이터베이스에서 Post 모델을 가져올 때 published_at는 자동으로 Carbon 인스턴스인 meta는 자동으로 PHP 배열로 변환됩니다. <code>published_at 转换为 datetime 类型,将 meta 转换为 array 类型。这样,当我们从数据库中获取 Post 模型时,published_at 将会自动转换为 Carbon 实例,meta 将会自动转换为 PHP 数组。

除了 Laravel 内置的字段转换类型,我们也可以自定义字段转换类型,以满足特定的业务需求。下面让我们看看自定义字段转换类型的示例:

namespace App\Models;

use Carbon\Carbon;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;

class Price implements CastsAttributes
{
    public function get($model, $key, $value, $attributes)
    {
        return $value / 100;
    }

    public function set($model, $key, $value, $attributes)
    {
        return $value * 100;
    }
}
로그인 후 복사

在上面的示例中,我们定义了一个名为 Price 的自定义字段转换类型,用于将模型属性从以分为单位的整数格式转换为以元为单位的浮点数格式。其中,get 方法用于将属性从数据库中读取时进行转换,set 方法用于将属性写入数据库时进行转换。

要在模型中使用自定义字段转换类型,我们只需在 $casts 属性中指定类型即可:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    protected $casts = [
        'price' => Price::class,
    ];
}
로그인 후 복사

在上面的示例中,我们将 price 属性转换为 Price 类型,这样当我们获取 Product 模型时,price 将会自动从数据库中读取以分为单位的整数格式,并转换为以元为单位的浮点数格式。

除了在模型中使用自定义字段转换类型外,我们还可以在查询构造器中使用字段转换类型,以满足特定的查询需求。下面让我们看看如何使用字段转换类型来进行查询:

$posts = Post::where('published_at', '>', now()->subDays(7))->get();
로그인 후 복사

在上面的示例中,我们查询了最近 7 天内发布的文章。Laravel 会自动将 published_at 字段的值转换为 Carbon

Laravel에 내장된 필드 변환 유형 외에도 특정 비즈니스 요구 사항에 맞게 필드 변환 유형을 사용자 정의할 수도 있습니다. 사용자 정의 필드 변환 유형의 예를 살펴보겠습니다.

rrreee

위 예에서는 모델 속성을 단위 정수 형식 변환에서 부동 소수점으로 변환하기 위해 Price라는 사용자 정의 필드 변환 유형을 정의했습니다. 단위로 형식을 지정합니다. 그 중 get 메소드는 데이터베이스에서 속성을 읽을 때 속성을 변환하는 데 사용되고, set 메소드는 데이터베이스에 쓸 때 속성을 변환하는 데 사용됩니다. 🎜🎜모델에서 사용자 정의 필드 캐스트 유형을 사용하려면 $casts 속성에 유형을 지정하기만 하면 됩니다. 🎜rrreee🎜위 예에서는 price The code>를 캐스팅했습니다. 속성은 <code>Price 유형으로 변환되므로 Product 모델을 가져올 때 price는 데이터베이스에서 자동으로 단위로 읽혀집니다. 센트 정수 형식이며 위안 단위의 부동 소수점 형식으로 변환됩니다. 🎜🎜모델에서 사용자 정의 필드 변환 유형을 사용하는 것 외에도 쿼리 빌더에서 필드 변환 유형을 사용하여 특정 쿼리 요구 사항을 충족할 수도 있습니다. 필드 변환 유형을 사용하여 쿼리하는 방법을 살펴보겠습니다. 🎜rrreee🎜위 예에서는 지난 7일 동안 게시된 기사를 쿼리합니다. Laravel은 자동으로 published_at 필드의 값을 Carbon 인스턴스로 변환하고 현재 시간과 비교합니다. 🎜🎜간단히 말하면, 필드 변환은 Laravel의 매우 중요한 기능으로, 다양한 비즈니스 요구 사항에 맞게 모델 속성을 쉽게 변환하는 데 도움이 됩니다. 이 글의 소개를 통해 독자들은 라라벨의 필드 변환에 대한 기본 지식을 이해했다고 믿으며, 실제 프로젝트에서 라라벨을 사용하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 Laravel의 필드 변환에 대한 기본 지식에 대해 이야기 해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿