nickescobedo/cambia
最新稳定版本:v1.1.0
Composer 安装命令:
composer require nickescobedo/cambia
包简介
Easily cast your request attributes.
README 文档
README
Cast request input in Laravel.
Installation
composer require nickescobedo/cambia
Basic Usage
- Add
NickEscobedo\Cambia\CastRequestAttributestrait to your request class. - Add a
castsfunction to your request class that returns an array. - Access casts via request attributes
$request->castedInput('inputKey'). Note: The request key must have be validated in rules before it will attempt to cast.
Example
class Cast extends FormRequest { use CastRequestAttributes; public function rules(): array { return [ 'toBoolean' => 'string', // Fields not present in validation will not cast ]; } public function casts(): array { return [ 'toBoolean' => 'boolean', ]; } }
$request->castedInput('toBoolean') will return a boolean value.
Available Casts
- int
- integer
- float
- double
- decimal:int
- string
- boolean
- object
- array
- json
- collection
- date
- datetime or datetime:format
- immutable_date
- immutable_datetime or immutable_datetime:format
- timestamp
Custom Casts
Custom casts allow for more complex casting logic. Enums and custom classes can be used. Custom cast classes must implement NickEscobedo\Cambia\CastsRequestAttributes.
Enum
enum Status: string { case Pending = 'pending'; }
public function casts(): array { return [ 'status' => Status::class, ]; }
Custom Cast Class
The class must implement NickEscobedo\Cambia\CastsRequestAttributes.
use Illuminate\Http\Request; use NickEscobedo\Cambia\CastsRequestAttributes; class JsonCast implements CastsRequestAttributes { public function get(Request $request, string $key, mixed $value, array $attributes) { return json_decode($value, true); } }
class Cast extends FormRequest { use CastRequestAttributes; public function rules(): array { return [ 'toBoolean' => 'string', // Fields not present in validation will not cast ]; } public function casts(): array { return [ 'toBoolean' => JsonCast::class, ]; } }
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-08-01