atayahmet / laravel-castable
明确所有输入的类型
v0.0.1
2017-03-02 20:51 UTC
Requires
- php: >=5.5.5
- illuminate/support: 5.3.*|5.4.*
- symfony/http-foundation: 3.1.*|3.2.*
Requires (Dev)
- orchestra/database: ~3.3
- orchestra/testbench: ~3.3
- phpunit/phpunit: ^4.0|^5.0
This package is auto-updated.
Last update: 2024-09-17 09:44:13 UTC
README
Laravel Castable
Laravel Castable 包是一个类型转换器、输入过滤器或清理器。它可以执行所有这些操作。支持 POST
、RAW DATA
、GET
请求方法。我们的灵感来源于 Laravel Eloquent 数据转换。
要求
PHP 5.6, 7.0+ Laravel 5.3 (LTS) 或 Laravel 5.4 (当前)
开始使用
首先,我们安装包
$ composer require atayahmet/laravel-castable
然后我们需要将服务提供者添加到 app.php
Castable\CastableServiceProvider::class
好了,我们完成了。
让我们看看如何使用 laravel-castable。
可转换的类型
创建可转换的表单请求类
我们创建了一个新的 artisan 命令,灵感来源于 Laravel 内置的 make:request
命令。
$ php artisan make:cast ContactRequest
新的表单请求类形式
<?php namespace App\Http\Requests; use Castable\Castable; class ContactRequest extends Castable { protected $casts = [ 'json' => [ // ], 'post' => [ 'name' => 'string', 'age' => 'integer', 'student' => 'boolean', 'interests' => 'collection' ], 'query' => [ 'save' => 'boolean' ] ]; /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return false; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ // ]; } }
我们将四个输入添加到 casts 属性中,将状态属性添加到查询字符串参数中,并将年龄、学生和兴趣属性添加到 POST 参数中。
属性的原始和转换类型
POST
查询字符串
为了获得上述结果
<?php ContactController extends Controller { public index(ContactRequest $contactRequest) { $contactRequest->cast()->input(); } }
获取输入
$contactRequest->cast()->input('interests'); // collection $contactRequest->cast()->input('student') // boolean (true) $contactRequest->cast()->input('save') // boolean (true)
如果请求是 POST 原始数据
$contactRequest->cast()->json(); $contactRequest->cast()->json('age');
获取原始输入
$contactRequest->input();
获取原始输入
$contactRequest->input('student'); // string (true)
原始原始数据
$contactRequest->json();
向输入添加展示器
您可以向所有 POST、查询和 JSON 输入添加展示器。此功能为您提供过滤输入的机会。
为 POST 参数添加展示器
public function PostNameAttribute($value, $original) { return ucfirst($value); }
为查询字符串参数添加展示器
public function QuerySaveAttribute($value, $original) { return $value === true ? 1 : 0; }
为 JSON 原始数据参数添加展示器
public function JsonSaveAttribute($value, $original) { return ucfirst($name); }
许可
此软件包是开源软件,许可协议为 MIT 许可证。