DboSource::prepareFields PHP Method

prepareFields() public method

When no fields are set, all the $Model fields are returned.
public prepareFields ( Model $Model, array $queryData ) : array
$Model Model The model to prepare.
$queryData array An array of queryData information containing keys similar to Model::find().
return array Array containing SQL fields.
    public function prepareFields(Model $Model, $queryData)
    {
        if (empty($queryData['fields'])) {
            $queryData['fields'] = $this->fields($Model);
        } elseif (!empty($Model->hasMany) && $Model->recursive > -1) {
            // hasMany relationships need the $Model primary key.
            $assocFields = $this->fields($Model, null, "{$Model->alias}.{$Model->primaryKey}");
            $passedFields = $queryData['fields'];
            if (count($passedFields) > 1 || strpos($passedFields[0], $assocFields[0]) === false && !preg_match('/^[a-z]+\\(/i', $passedFields[0])) {
                $queryData['fields'] = array_merge($passedFields, $assocFields);
            }
        }
        return array_unique($queryData['fields']);
    }
DboSource