{{ " ${{ arg.name.as_it }}{{ loop.last ? "" : ", " }}{% endfor %}{% endset %} /** {% for arg in args.in %} * @param ${{ arg.name.as_it }} {{ arg.data_type.php.as_it }} {% endfor %} * @return {{ dboName.camel_upper }}{% if sp.proretset %}[]{% endif %} */ public static function execute({% for arg in args.in %}${{ arg.name.as_it }}{{ loop.last ? "" : ", " }}{% endfor %}) { $values = static::getConnection()->select('SELECT {% for arg in args.out %}to_json(data.{{ arg.name.as_it }}) AS {{ arg.name.as_it }}{{ loop.last ? "" : ", " }}{% endfor %} FROM {{ spcall }} data', array({{ argsarray }})); {% if sp.proretset %} $dboValues = array(); foreach ($values as $value) { $json = LuArrayUtils::objectToArray($value); $dboValues[] = {{ dboName.camel_upper }}::jsonDeserialize($json); } return $dboValues; {% else %} $json = LuArrayUtils::objectToArray($values[0]); return {{ dboName.camel_upper }}::jsonDeserialize($json); {% endif %} } {% if sp.proretset %} /** {% for arg in args.in %} * @param ${{ arg.name.as_it }} {{ arg.data_type.php.as_it }} {% endfor %} * @param $page int The page number, 0 based * @param $perPage int The number of items per page * @return LuMultipleDbo */ public static function getMultipleJson({% for arg in args.in %}${{ arg.name.as_it }}, {% endfor %}$page, $perPage) { $values = static::getConnection()->select('SELECT (SELECT count(*) FROM {{ spcall }}) as count, (SELECT json_agg(q) FROM (SELECT * FROM {{ spcall }} OFFSET (:page::int * :perPage::int) LIMIT :perPage) q) as data', array({{ argsarray }}, ":page" => $page, ":perPage" => $perPage)); $value = $values[0]; if (is_null($value->data)) { $value->data = '[]'; } $json = LuStringUtils::convertJsonString($value->data); $data = {{ dboName.camel_upper }}Array::jsonDeserialize($json); return new LuMultipleDbo($value->count, $data->getArray()); } {% endif %} }