@php echo "count() > 0) { $translatableColumns = $columns->filter(function($column) use ($translatable) { return in_array($column['name'], $translatable->toArray()); }); $standardColumn = $columns->reject(function($column) use ($translatable) { return in_array($column['name'], $translatable->toArray()); }); } @endphp @if($containsPublishedAtColumn) use Carbon\Carbon; @endif @if($translatable->count() > 0)use Smarteknoloji\Translatable\TranslatableFormRequest; @else use Illuminate\Foundation\Http\FormRequest; @endif use Illuminate\Support\Facades\Gate; use Illuminate\Validation\Rule; @if($translatable->count() > 0)class Update{{ $modelBaseName }} extends TranslatableFormRequest @else class Update{{ $modelBaseName }} extends FormRequest @endif { /** * Determine if the user is authorized to make this request. * * {{'@'}}return bool */ public function authorize(): bool { return Gate::allows('admin.{{ $modelDotNotation }}.edit', $this->{{ $modelVariableName }}); } @if($translatable->count() > 0) /** * Get the validation rules that apply to the requests untranslatable fields. * * {{'@'}}return array */ public function untranslatableRules(): array { return [ @foreach($standardColumn as $column) @if(!($column['name'] == "order_column")) '{{ $column['name'] }}' => [{!! implode(', ', (array) $column['serverUpdateRules']) !!}], @endif @endforeach @if($containsPublishedAtColumn) 'publish_now' => ['nullable', 'boolean'], 'unpublish_now' => ['nullable', 'boolean'], @endif @if (count($relations)) @if (count($relations['belongsToMany'])) @foreach($relations['belongsToMany'] as $belongsToMany)'{{ $belongsToMany['related_table'] }}' => [{!! implode(', ', ['\'sometimes\'', '\'array\'']) !!}], @endforeach @endif @endif ]; } /** * Get the validation rules that apply to the requests translatable fields. * * {{'@'}}param $locale * {{'@'}}return array */ public function translatableRules($locale): array { return [ @foreach($translatableColumns as $column)'{{ $column['name'] }}' => [{!! implode(', ', (array) $column['serverUpdateRules']) !!}], @endforeach ]; } @else /** * Get the validation rules that apply to the request. * * {{'@'}}return array */ public function rules(): array { return [ @foreach($columns as $column) @if(!($column['name'] == "updated_by_admin_user_id" || $column['name'] == "created_by_admin_user_id" || $column['name'] == "order_column" ))'{{ $column['name'] }}' => [{!! implode(', ', (array) $column['serverUpdateRules']) !!}], @endif @endforeach @if (count($relations)) @if (count($relations['belongsToMany'])) @foreach($relations['belongsToMany'] as $belongsToMany)'{{ $belongsToMany['related_table'] }}' => [{!! implode(', ', ['\'sometimes\'', '\'array\'']) !!}], @endforeach @endif @endif @if($containsPublishedAtColumn)'publish_now' => ['nullable', 'boolean'], 'unpublish_now' => ['nullable', 'boolean'], @endif ]; } @endif /** * Modify input data * * {{'@'}}return array */ public function getSanitized(): array { $sanitized = $this->validated(); @if($containsPublishedAtColumn) if (isset($sanitized['publish_now']) && $sanitized['publish_now'] === true) { $sanitized['published_at'] = Carbon::now(); } if (isset($sanitized['unpublish_now']) && $sanitized['unpublish_now'] === true) { $sanitized['published_at'] = null; } @endif //Add your code for manipulation with request data here return $sanitized; } }