private function buildRules($type)
{
$used = [];
$rules = '';
foreach ($this->fields as $field) {
// Check if there is no duplication for radio and checkbox
if (!in_array($field->title, $used)) {
if ($field->type != 'file' && $field->type != 'relationship' && $field->type != 'money') {
if ($type == 0 || $field->type != 'password') {
switch ($field->validation) {
case 'required':
$rules .= "'{$field->title}' => '{$field->validation}', \r\n ";
break;
case 'required|unique':
$camelName = Str::camel($this->name);
// Insert table names
$tableName = strtolower($camelName);
$rules .= "'{$field->title}' => '{$field->validation}:{$tableName},{$field->title},'." . '$this->' . $this->request . ", \r\n ";
break;
}
}
} elseif ($field->type == 'relationship') {
switch ($field->validation) {
case 'required':
$rules .= "'" . $field->relationship_name . "_id' => '{$field->validation}', \r\n ";
break;
case 'required|unique':
$camelName = Str::camel($this->name);
// Insert table names
$tableName = strtolower($camelName);
$rules .= "'" . $field->relationship_name . "_id' => '{$field->validation}:{$tableName},{$field->relationship_name_id},'." . '$this->' . $this->request . ", \r\n ";
break;
}
} elseif ($field->type == 'file' || $field->type == 'photo') {
if ($type == 0) {
switch ($field->validation) {
case 'required':
$rules .= "'{$field->title}' => 'max:{$field->size}|{$field->validation}', \r\n ";
break;
case 'required|unique':
$camelName = Str::camel($this->name);
// Insert table names
$tableName = strtolower($camelName);
$rules .= "'{$field->title}' => 'max:{$field->size}|{$field->validation}:{$tableName},{$field->title},'." . '$this->' . $this->request . ", \r\n ";
break;
default:
// We got a file field which has a bit different validation
$rules .= "'{$field->title}' => 'max:{$field->size}', \r\n ";
break;
}
} else {
switch ($field->validation) {
case 'required':
$rules .= "'{$field->title}' => 'max:{$field->size}', \r\n ";
break;
case 'required|unique':
$camelName = Str::camel($this->name);
// Insert table names
$tableName = strtolower($camelName);
$rules .= "'{$field->title}' => 'max:{$field->size}|{$field->validation}:{$tableName},{$field->title},'." . '$this->' . $this->request . ", \r\n ";
break;
default:
// We got a file field which has a bit different validation
$rules .= "'{$field->title}' => 'max:{$field->size}', \r\n ";
break;
}
}
} elseif ($field->type == 'money') {
switch ($field->validation) {
case 'required':
$rules .= "'{$field->title}' => 'numeric|{$field->validation}', \r\n ";
break;
case 'required|unique':
$camelName = Str::camel($this->name);
// Insert table names
$tableName = strtolower($camelName);
$rules .= "'{$field->title}' => 'numeric|{$field->validation}:{$tableName},{$field->title},'." . '$this->' . $this->request . ", \r\n ";
break;
default:
// We got a file field which has a bit different validation
$rules .= "'{$field->title}' => 'numeric', \r\n ";
break;
}
}
$used[$field->title] = $field->title;
}
}
return $rules;
}