kanagama/laravel-add-formrequest-accessor

为 Laravel 的 FormRequest 添加 accessor 功能

v2.0.1 2023-08-24 14:06 UTC

README

为 Laravel 的 FormRequest 添加 accessor 功能。

在 Qiita 上有详细的说明

https://qiita.com/kazumacchi/items/aebfe8dfccbfd28acaf4

安装

$ composer require kanagama/laravel-add-formrequest-accessor:2.*

用法

没有参数,但类似于模型的 accessor。请参考以下代码

请求

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Kanagama\FormRequestAccessor\FormRequestAccessor;

/**
 * @property-read string $full_name
 */
class BookingRequest extends FormRequest
{
    use FormRequestAccessor;

    /**
     * フルネームを取得
     *
     * @return string
     *
     * @author k.nagama <k.nagama0632@gmail.com>
     */
    public function getFullNameAttribute(): string
    {
        return $this->input('last_name') .' '. $this->input('first_name');
    }
}

控制器等

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Http\Requests\BookingRequest;

class BookingController extends Controller
{
    /**
     * @param  BookingRequest  $request
     *
     * @author k.nagama <k.nagama0632@gmail.com>
     */
    public function reserve(BookingRequest $request)
    {
        dd($request->full_name);
    }

$guarded

使用 $guarded 指定属性不会在 all() 函数中输出。

protected $guarded = [
    'first_name',
];

$fill

仅使用 $fill 指定属性会在 all() 函数中输出。如果与 $guarded 一起使用,则 $fill 优先。

protected $fill = [
    'first_name',
];

null_disabled

如果 $null_disabled 指定的 accessor 返回 null,则不会输出。

empty_disabled

如果 $empty_disabled 指定的 accessor 返回空(empty() 检查),则不会输出。

casts

将指定属性的类型转换为。与模型中的 $casts 类似的行为。

protected $casts = [
    'id'        => 'int',
    'from_date' => 'string',
    'view_flg'  => 'bool',
];

测试

php vendor/bin/phpunit

分析

vendor/bin/phpstan analyse -l 3 src/

度量

php ./vendor/bin/phpmetrics --report-html=phpmetrics src/