Laraveldaily\Quickadmin\Builders\RequestBuilder::buildRules PHP Method

buildRules() private method

Build request rules
private buildRules ( $type ) : string
return string
    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;
    }