mivita/app/Requests/TranslationRequest.php
2019-03-19 15:45:46 +01:00

73 lines
1.5 KiB
PHP

<?php
namespace App\Requests;
use App\Http\Controllers\TranslationFileController;
use Illuminate\Foundation\Http\FormRequest;
/**
* Class TranslationRequest
*
* @package GeniusTS\TranslationManager
*/
class TranslationRequest 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()
{
$manager = new TranslationFileController;
$rules = [];
$file = $this->route()->parameter('file');
$translation = $manager->translations($file);
foreach ($translation as $key => $value)
{
$this->generateRulesOfKey($key, $value, null, $rules);
}
return $rules;
}
/**
* Generate rule form an element
*
* @param string $key
* @param string $value
* @param string $prefix
* @param array $rules
*/
protected function generateRulesOfKey($key, $value, $prefix, &$rules)
{
$rule = $prefix ? "{$prefix}{$key}" : $key;
if (is_array($value))
{
//$rules[$rule] = 'required|array';
foreach ($value as $subKey => $subValue)
{
$this->generateRulesOfKey($subKey, $subValue, "{$rule}.", $rules);
}
}
else
{
//$rules[$rule] = "required|string";
}
}
}