45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests;
|
|
|
|
use App\Rules\LoadedMedia;
|
|
use Illuminate\Validation\Rule;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
class VideoFormRequest extends FormRequest
|
|
{
|
|
/**
|
|
* Determine if the user is authorized to make this request.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function authorize()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
return [
|
|
'title' => ['nullable', 'string', 'max:255'],
|
|
'body' => ['nullable', 'string'],
|
|
'videos' => [new LoadedMedia($this)],
|
|
//'videos.*' => ['mimes:mp4,flv,mov,avi,wmv', 'max:20000'],
|
|
'preview' => ['nullable', 'image'],
|
|
'tags' => ['array'],
|
|
|
|
'price' => ['nullable', 'numeric', Rule::requiredIf($this->is_paid == 1)],
|
|
'videos_paid' => ['sometimes', 'nullable', 'array', Rule::requiredIf($this->is_paid == 1)],
|
|
//'videos_paid.*' => ['mimes:mp4,flv,mov,avi,wmv', 'max:20000'],
|
|
|
|
'removedItems' => ['nullable', 'array'],
|
|
//'youtube' => ['nullable', 'regex:/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/i']
|
|
];
|
|
}
|
|
}
|