it-brains/laravel-validator

0.1.10 2023-03-14 21:52 UTC

This package is auto-updated.

Last update: 2024-04-15 00:49:28 UTC


README

Custom rules

  • uniqueModel
  • existsModel

Examples

uniqueModel instead just unique

Instead of

...
use Illuminate\Validation\Rule;
...

public function rules()
{
    return [
        'title' => [
            Rule::unique('containers', 'name')
                ->where('user_id', $this->user()->id)
                ->whereNull('deleted_at'),
        ],
        
        // other rules
        'type' => Rule::in(['A', 'B']),
        ...
    ];
}

...

or with table from model's class

...
use App\Container;
use Illuminate\Validation\Rule;
...

public function rules()
{
    return [
        'title' => [
            Rule::unique((new Container::class)->getTable(), 'name')
                ->where('user_id', $this->user()->id)
                ->whereNull('deleted_at'),
        ],
        
        // other rules
        'type' => Rule::in(['A', 'B']),
        ...
    ];
}

...

Use next

...
use App\Container;
use ITBrains\Validation\Rule;
...

public function rules()
{
    return [
        'title' => [
            Rule::uniqueModel(Container::class, 'name')
                ->where('user_id', $this->user()->id),
                
            // other rules
            'type' => Rule::in(['A', 'B']),
            ...
        ],
    ];
}

...