36 lines
953 B
PHP
36 lines
953 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Requests\Admin\Posts;
|
||
|
|
|
||
|
|
use Illuminate\Foundation\Http\FormRequest;
|
||
|
|
use Illuminate\Validation\Rule;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Base request for post operations, containing shared validation logic.
|
||
|
|
*/
|
||
|
|
abstract class BasePostRequest extends FormRequest
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Get the base validation rules for posts.
|
||
|
|
*
|
||
|
|
* @param int|null $ignoreId
|
||
|
|
* @return array
|
||
|
|
*/
|
||
|
|
protected function baseRules(?int $ignoreId = null): array
|
||
|
|
{
|
||
|
|
return [
|
||
|
|
'title' => 'required|string|max:255',
|
||
|
|
'slug' => [
|
||
|
|
'required',
|
||
|
|
'string',
|
||
|
|
'max:255',
|
||
|
|
$ignoreId ? Rule::unique('posts')->ignore($ignoreId) : 'unique:posts',
|
||
|
|
],
|
||
|
|
'content' => 'required|array',
|
||
|
|
'custom_fields_data' => 'nullable|array',
|
||
|
|
'status' => 'required|string|in:draft,published',
|
||
|
|
'published_at' => 'nullable|date',
|
||
|
|
];
|
||
|
|
}
|
||
|
|
}
|