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