PHPackages                             ajtarragona/censat-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ajtarragona/censat-client

ActiveLibrary[API Development](/categories/api)

ajtarragona/censat-client
=========================

Client d'accés a la API Rest de l'aplicació CENSAT

v2.1.21(1y ago)0767MITPHPPHP ^7.1.3|^8.0

Since Jul 24Pushed 6mo agoCompare

[ Source](https://github.com/ajtarragona/censat-client)[ Packagist](https://packagist.org/packages/ajtarragona/censat-client)[ RSS](/packages/ajtarragona-censat-client/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (3)Versions (43)Used By (0)

Censat Client for Laravel
=========================

[](#censat-client-for-laravel)

Client d'accés a la API Rest de l'aplicació CENSAT de l'Ajuntament de Tarragona

**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*

- [Instalació](#instalaci%C3%B3)
- [Configuració](#configuraci%C3%B3)
- [Via API](#via-api)
    - [Funcions](#funcions)
        - [Definició de censos i entitats](#definici%C3%B3-de-censos-i-entitats)
            - [censuses()](#censuses)
            - [census($short\_name)](#censusshort_name)
            - [censusEntities($short\_name)](#censusentitiesshort_name)
            - [entities()](#entities)
            - [entity($short\_name)](#entityshort_name)
            - [entityFields($short\_name)](#entityfieldsshort_name)
            - [entityField($entity\_name, $field\_name)](#entityfieldentity_name-field_name)
            - [entityGridFields($short\_name, $grid\_name)](#entitygridfieldsshort_name-grid_name)
        - [Accedint a les instàncies (Crear, modificar i consultar)](#accedint-a-les-inst%C3%A0ncies-crear-modificar-i-consultar)
            - [instances($census\_name, $entity\_name, $options=\[\])](#instancescensus_name-entity_name-options)
            - [search($census\_name, $entity\_name, $filters, $options=\[\])](#searchcensus_name-entity_name-filters-options)
            - [instancesTree($census\_name, $entity\_name, $field\_name, $options=\[\])](#instancestreecensus_name-entity_name-field_name-options)
            - [instance($census\_name, $entity\_name, $id, $options=\[\])](#instancecensus_name-entity_name-id-options)
            - [getInstanceField($census\_name, $entity\_name, $id, $field\_name)](#getinstancefieldcensus_name-entity_name-id-field_name)
            - [createInstance($census\_name, $entity\_name, $fields)](#createinstancecensus_name-entity_name-fields)
            - [deleteInstance($census\_name, $entity\_name, $id, $hard=false)](#deleteinstancecensus_name-entity_name-id-hardfalse)
            - [updateInstance($census\_name, $entity\_name, $id, $fields)](#updateinstancecensus_name-entity_name-id-fields)
            - [updateInstanceField($census\_name, $entity\_name, $id, $field\_name, $value)](#updateinstancefieldcensus_name-entity_name-id-field_name-value)
            - [clearInstanceField($census\_name, $entity\_name, $id, $field\_name)](#clearinstancefieldcensus_name-entity_name-id-field_name)
            - [addInstanceFieldItem($census\_name, $entity\_name, $id, $field\_name, $value)](#addinstancefielditemcensus_name-entity_name-id-field_name-value)
            - [removeInstanceFieldItem($census\_name, $entity\_name, $id, $field\_name, $item\_id)](#removeinstancefielditemcensus_name-entity_name-id-field_name-item_id)
        - [Graelles (Grids)](#graelles-grids)
            - [getInstanceGridItems($census\_name, $entity\_name, $id, $grid\_name)](#getinstancegriditemscensus_name-entity_name-id-grid_name)
            - [getInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $grid\_item\_id)](#getinstancegriditemcensus_name-entity_name-id-grid_name-grid_item_id)
            - [addInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $values=\[\])](#addinstancegriditemcensus_name-entity_name-id-grid_name-values)
            - [updateInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $grid\_item\_id, $values=\[\])](#updateinstancegriditemcensus_name-entity_name-id-grid_name-grid_item_id-values)
            - [removeInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $grid\_item\_id)](#removeinstancegriditemcensus_name-entity_name-id-grid_name-grid_item_id)
        - [Entitats relacionades](#entitats-relacionades)
            - [addInstanceRelatedItem($census\_name, $entity\_name, $id, $field\_name, $item\_id)](#addinstancerelateditemcensus_name-entity_name-id-field_name-item_id)
            - [removeInstanceRelatedItem($census\_name, $entity\_name, $id, $field\_name, $item\_id)](#removeinstancerelateditemcensus_name-entity_name-id-field_name-item_id)
        - [Attachments (documents)](#attachments-documents)
            - [getAttachment($attachment\_id)](#getattachmentattachment_id)
            - [getAttachmentContent($attachment\_id)](#getattachmentcontentattachment_id)
            - [downloadAttachment($attachment\_id)](#downloadattachmentattachment_id)
        - [Trees Feature](#trees-feature)
            - [getTrees($options=\[\])](#gettreesoptions)
            - [getTree($tree\_id, $options=\[\])](#gettreetree_id-options)
            - [getTreeNodes($tree\_id, $options=\[\])](#gettreenodestree_id-options)
            - [getNode($tree\_id, $node\_id, $options=\[\])](#getnodetree_id-node_id-options)
            - [getNodeChildren($tree\_id, $node\_id, $options=\[\])](#getnodechildrentree_id-node_id-options)
            - [getNodeParent($tree\_id, $node\_id, $options=\[\])](#getnodeparenttree_id-node_id-options)
            - [getNodeAncestors($tree\_id, $node\_id, $options=\[\])](#getnodeancestorstree_id-node_id-options)
            - [getNodeDescendants($tree\_id, $node\_id, $options=\[\])](#getnodedescendantstree_id-node_id-options)
            - [getNodeSiblings($tree\_id, $node\_id, $direction=null, $options=\[\])](#getnodesiblingstree_id-node_id-directionnull-options)
    - [Classes](#classes)
        - [Census](#census)
            - [entity($entity\_name)](#entityentity_name)
            - [entities()](#entities-1)
        - [Entity](#entity)
            - [fields()](#fields)
            - [field($short\_name)](#fieldshort_name)
            - [relatedEntity($short\_name)](#relatedentityshort_name)
            - [forCensus($census\_name)](#forcensuscensus_name)
            - [all($options=\[\])](#alloptions)
            - [get($id, $options=\[\])](#getid-options)
            - [search($filters, $options=\[\])](#searchfilters-options)
            - [tree( $short\_name, $options=\[\])](#tree-short_name-options)
            - [create( $options=\[\])](#create-options)
        - [Field](#field)
            - [settings()](#settings)
            - [options()](#options)
            - [gridFields()](#gridfields)
            - [relatedEntity()](#relatedentity)
        - [Instance](#instance)
            - [entity()](#entity)
            - [census()](#census)
            - [update($fields)](#updatefields)
            - [get($field\_name)](#getfield_name)
            - [set($field\_name, $value)](#setfield_name-value)
            - [add($field\_name, $value)](#addfield_name-value)
            - [clear($field\_name)](#clearfield_name)
            - [remove($field\_name, $item\_id)](#removefield_name-item_id)
            - [delete()](#delete)
            - [destroy()](#destroy)
        - [TreeNode](#treenode)
            - [parent($options=\[\])](#parentoptions)
            - [siblings($direction=null, $options=\[\])](#siblingsdirectionnull-options)
            - [descendants($options=\[\])](#descendantsoptions)
            - [ancestors($options=\[\])](#ancestorsoptions)
            - [children($options=\[\])](#childrenoptions)
- [Vía Base de Dades (Eloquent )](#v%C3%ADa-base-de-dades-eloquent-)
    - [Camps data](#camps-data)
    - [Integracions i Mapes](#integracions-i-mapes)
    - [Relacions](#relacions)
    - [Selects](#selects)
    - [Grids](#grids)

Instalació
----------

[](#instalació)

```
composer require ajtarragona/censat-client:"@dev"
```

Configuració
------------

[](#configuració)

Pots configurar el paquet a través de l'arxiu `.env` de l'aplicació. Aquests son els parámetres disponibles :

Per a l'accés via API

```
CENSAT_DEBUG
CENSAT_API_URL // no incloure la versio a la URL
CENSAT_API_VERSION
CENSAT_API_USER
CENSAT_API_PASSWORD
CENSAT_API_TOKEN
```

*Si definim un token, es farà servir aquest per totes les peticions. Si no, se'n crearà un de nou per cada petició a partir de l'usuari i password. És recomanable doncs definir un token ja que es faran la meitat de crides. Censat genera tokens amb una expiració d'un any a través del mètode Login de la seva Api.*

Per a l'accés via Base de Dades

```
CENSAT_DB_HOST
CENSAT_DB_PORT
CENSAT_DB_DATABASE
CENSAT_DB_USERNAME
CENSAT_DB_PASSWORD
```

Alternativament, pots publicar l'arxiu de configuració del paquet amb la comanda:

```
php artisan vendor:publish --tag=ajtarragona-censat-config
```

Això copiarà esl arxiu a `censat-api.php` i `censat-database.php` a la carpeta `config`.

Via API
-------

[](#via-api)

Un cop configurat, el paquet està a punt per fer-se servir. Ho pots fer de les següents maneres:

**A través d'una `Facade`:**

```
use Censat;
...
public  function  test(){
    $censos=Censat::censuses();
    ...
}
```

Per Laravel &lt; 5.6, cal registrar l'alias de la Facade a l'arxiu `config/app.php` :

```
'aliases'  =>  [
    ...
    'Censat'  =>  Ajtarragona\Censat\Facades\Censat::class
]
```

**Vía Injecció de dependències:**Als teus controlladors, helpers, model:

```
use Ajtarragona\Censat\Models\CensatClient;
...

public  function  test(CensatClient  $censat){
    $censos=$censat->censuses();
    ...
}
```

**Vía funció `helper`:**

```
...
public  function  test(){
    $censos=censat()->censuses();
    ...
}
```

### Funcions

[](#funcions)

#### Definició de censos i entitats

[](#definició-de-censos-i-entitats)

##### censuses()

[](#censuses)

Returns all censuses. Objects of class [Census](#census)

##### census($short\_name)

[](#censusshort_name)

Returns a census given its name.

##### censusEntities($short\_name)

[](#censusentitiesshort_name)

Returns a census entities given the census name. Objects of class [Entity](#entity)

##### entities()

[](#entities)

Returns all entities.

##### entity($short\_name)

[](#entityshort_name)

Returns an entity given its name.

##### entityFields($short\_name)

[](#entityfieldsshort_name)

Returns an entity fields given the entity name. Objects of class [Field](#field)

##### entityField($entity\_name, $field\_name)

[](#entityfieldentity_name-field_name)

Returns a single entity field given the entity name and the field name.

##### entityGridFields($short\_name, $grid\_name)

[](#entitygridfieldsshort_name-grid_name)

Returns the fields of an entity grid, given the entity name and the grid name.

#### Accedint a les instàncies (Crear, modificar i consultar)

[](#accedint-a-les-instàncies-crear-modificar-i-consultar)

##### instances($census\_name, $entity\_name, $options=\[\])

[](#instancescensus_name-entity_name-options)

Returns all instances in a given census and entity. Objects of class [Instance](#instance)

###### Options:

[](#options)

- *fields* : comma separated field names that will be returned. See [fields](#fields) section for more info.
- *parsevalues* : true will return all object and array values as strings.
- *separator* : is parsevalues is set to true, multiple fields will be returned as a comma separated string. With this options you can set a diferent separator character/s.
- *exclude* : comma separated field names that will NOT be returned.
- *sort* : name of the field to sort by.
- *direction* : sort direction (asc or desc).
- *paginate* : true to paginate (default false).
- *page* : page number.
- *pagesize* : page size (default 10).

###### Fields:

[](#fields)

Podem especificar quins camps volem que se'ns retornis amb una llista dels noms, separats per coma.

Tenim l'alias *basefields* que ens retornarà els camps base (id, dates, versio...)

Però a més, podem navegar pel model de dades mitjançant notació punt. Per exemple si volem que ens retorni l'id d'un camp de relació, podem fer:

```
nom_camp_relacio.id

```

En el cas de grids o camps múltiples (relacions, integracions, selects) tenim els accessors especials:

```
nom_grid.0 (o l'índex que vulguem)
nom_grid.first
nob_grid.last

```

I la gràcia és que tot plegat es pot concatenar:

```
nom_camp.0.nom_grid.1.camp_usuari.username

```

**Formatadors**Sobre cada camp, podem aplicar formatadors separant-los amb el caràcter `|`. Aquests s'aplicaran al valor retornat. Per exemple podem fer que ens retorni un valor de text en majúscules:

```
nom_camp|upper

```

Es poden concaternar varios formatadors que s'aplicaran en ordre.

```
nom_camp|upper|lower

```

Aquests son els disponibles:

- **upper**: passa a majúscules
- **lower**: passa a minúscules
- **serialize**: serialitza
- **csv(delimiter?;enclosure?)**: passa a csv, en cas que ens tornin arrays (opcionalment podem definir el caracter delimitador i les cometes per enbolcallar els texts)
- **json**: passa a json
- **array**: passa a rray si era un objecte
- **object**: passa a objecte si era un array
- **matricula/format/string(format?)**: els 3 fan el mateix. Mostra una versió textual del camp retornat.
- **pad(num;char?;position?)**: afegeix zeros per l'equerra (podem passar el numero de zeros, i opcionalment el caracter a afegir, si no volem q sigui zero i la posicio: (0: esquerra, 1: dreta, 2:els dos costats) )
- **count**: retorna el numero d'elements si es retorna un array

##### search($census\_name, $entity\_name, $filters, $options=\[\])

[](#searchcensus_name-entity_name-filters-options)

Search instances in a given census and entity.

###### Filters:

[](#filters)

Must be an array of filters or filtergroups: A filter must be a key-value array with following attributes:

- *id* : name of the field to filter
- *value* : value of the field
- *operation* : Logic Operation (=, !=, &lt;, &gt; , &lt;=, &gt;=, contains, starts\_with, ends\_with, in, not in, isnull, isnotnull) (default =)

A filtergroup must be a key-value array with following attributes:

- *concat* : and / or
- *filters* : array of filters or filtergroups

```
[
    ["id"=>  "name",  "value"=>"john",  "operation"=>"contains"],
    ["id"=>  "gender",  "value"=>"male"],  //default operation =
    ["id"=>  "age",  "value"=>18,  "operation"=>">"],
    ["id"=>  "active",  "operation"=>"isnotnull"],  //value not needed
    ["id"=>  "tags",  "operation"=>"in",  "value"=>[1,2,3]],
    ["concat"=>  "or",  "filters"=>[
        ["id"=>  "gender",  "value"=>"female"]
    ]]
]
```

###### Options:

[](#options-1)

- See [instances](#instances) method

##### instancesTree($census\_name, $entity\_name, $field\_name, $options=\[\])

[](#instancestreecensus_name-entity_name-field_name-options)

Returns the whole instances tree given a census name, an entity name and the field name that establishes the instances parenthood hyerarchy.

###### Options:

[](#options-2)

- *parent\_id* : id of the root instance to start the tree with (defaults to null)
- *sort* : name of the field to sort by.
- *direction* : sort direction (asc or desc).
- *filters* : see [search](#search) method

##### instance($census\_name, $entity\_name, $id, $options=\[\])

[](#instancecensus_name-entity_name-id-options)

Returns a single instance given a census name, an entity name and the instance id.

###### Options:

[](#options-3)

- *fields* : comma separated field names that will be returned. Alias "basefields" will return id, version and dates.
- *parsevalues* : true will return all object and array values as strings.
- *exclude* : comma separated field names that will NOT be returned.

##### getInstanceField($census\_name, $entity\_name, $id, $field\_name)

[](#getinstancefieldcensus_name-entity_name-id-field_name)

Get an instance field given a census and entity, the instance id and the field name.

##### createInstance($census\_name, $entity\_name, $fields)

[](#createinstancecensus_name-entity_name-fields)

Create an instance in a given census and entity. Returns the created instance or an exception.

- Fields must be a key-value array with the field names and its values.
- For multiple values like selects, relations, documents or grids, use arrays.
- Select and relation fields expect the ID of the related values.
- Document-type fields expect and array with 'file-name' and 'file-content' (binary content)
- Integration fields (like LDAP users and UOs) expect the PK of the integration (username and code in the examples).

```
    try{
        $instance= Censat::createInstance("census_name","entity_name",[
            "name" => "John",
            "surname" => "Smith",
            "age" => 25,
            "addresses_grid"=> [
                [
                    "street"=>"Fake street",
                    "number"=> 1
                ],
                [
                    "street"=>"Dumb street",
                    "number"=> 33
                    "floor" => 1
                ]
            ],
            "tags" => [1,2,4], //relation field
            'document_simple' => [
                "file-name"=>"doc_name.pdf",
                "file-content"=>$binary_content
            ],
            'document_multiple' => [
                [
                    "file-name"=>"doc_name1.pdf",
                    "file-content"=>$binary_content
                ],
                [
                    "file-name"=>"doc_name2.pdf",
                    "file-content"=>$binary_content
                ]
            ]
        ]);
    }catch(Exception $e){
        ...
    }
```

##### deleteInstance($census\_name, $entity\_name, $id, $hard=false)

[](#deleteinstancecensus_name-entity_name-id-hardfalse)

Delete and instance given a census and entity and the instance id. By default it is a soft delete. Hard delete can be forced setting the parameter `hard`to true. Returns true or an Exception

##### updateInstance($census\_name, $entity\_name, $id, $fields)

[](#updateinstancecensus_name-entity_name-id-fields)

Update an instance given a census and entity and the instance id. Fields must be a key-value array with the field names and its values. Returns the updated instance or an Exception.

##### updateInstanceField($census\_name, $entity\_name, $id, $field\_name, $value)

[](#updateinstancefieldcensus_name-entity_name-id-field_name-value)

Update an instance single field. Returns the updated instance or an Exception.

##### clearInstanceField($census\_name, $entity\_name, $id, $field\_name)

[](#clearinstancefieldcensus_name-entity_name-id-field_name)

Clears (sets to null) an instance field. Returns the updated instance or an Exception.

##### addInstanceFieldItem($census\_name, $entity\_name, $id, $field\_name, $value)

[](#addinstancefielditemcensus_name-entity_name-id-field_name-value)

Add an item to an instance field, given its value. It is useful for multiple fields (relations, selects, integrations or grids). Returns the updated instance or an Exception.

##### removeInstanceFieldItem($census\_name, $entity\_name, $id, $field\_name, $item\_id)

[](#removeinstancefielditemcensus_name-entity_name-id-field_name-item_id)

Removes an instance field item, given its id It is useful for multiple fields (relations, selects, integrations or grids). Returns the updated instance or an Exception.

#### Graelles (Grids)

[](#graelles-grids)

##### getInstanceGridItems($census\_name, $entity\_name, $id, $grid\_name)

[](#getinstancegriditemscensus_name-entity_name-id-grid_name)

Returns the items of an instance grid.

##### getInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $grid\_item\_id)

[](#getinstancegriditemcensus_name-entity_name-id-grid_name-grid_item_id)

Returns an item of an instance grid, given its id.

##### addInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $values=\[\])

[](#addinstancegriditemcensus_name-entity_name-id-grid_name-values)

Add an item to an instance grid, given its value. Returns the updated instance an Exception.

##### updateInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $grid\_item\_id, $values=\[\])

[](#updateinstancegriditemcensus_name-entity_name-id-grid_name-grid_item_id-values)

Updates an instance grid item. Returns the updated instance an Exception.

##### removeInstanceGridItem($census\_name, $entity\_name, $id, $grid\_name, $grid\_item\_id)

[](#removeinstancegriditemcensus_name-entity_name-id-grid_name-grid_item_id)

Removes an instance grid item, given its id. Returns the updated instance an Exception.

#### Entitats relacionades

[](#entitats-relacionades)

##### addInstanceRelatedItem($census\_name, $entity\_name, $id, $field\_name, $item\_id)

[](#addinstancerelateditemcensus_name-entity_name-id-field_name-item_id)

Add an item to an instance relation field, given its id. Returns the updated instance an Exception.

##### removeInstanceRelatedItem($census\_name, $entity\_name, $id, $field\_name, $item\_id)

[](#removeinstancerelateditemcensus_name-entity_name-id-field_name-item_id)

Remove an item from an instance relation field, given its id. Returns the updated instance an Exception.

#### Attachments (documents)

[](#attachments-documents)

##### getAttachment($attachment\_id)

[](#getattachmentattachment_id)

Returns an attachment info given its Censat ID

##### getAttachmentContent($attachment\_id)

[](#getattachmentcontentattachment_id)

Returns an attachment content (encoded in base64) given its Censat ID

##### downloadAttachment($attachment\_id)

[](#downloadattachmentattachment_id)

Downloads (streams the file through the response) an attachment given its Censat ID

#### Trees Feature

[](#trees-feature)

##### getTrees($options=\[\])

[](#gettreesoptions)

Retorna tots els arbres

##### getTree($tree\_id, $options=\[\])

[](#gettreetree_id-options)

Retorna un arbre passant el seu ID o short\_name

##### getTreeNodes($tree\_id, $options=\[\])

[](#gettreenodestree_id-options)

Retorna els nodes d'un arbre

###### Options:

[](#options-4)

- *parent\_id* : Si s'especifica, retorna nodes a partir d'aquest node arrel.
- *with\_instance* : Retorna més dades de la instància d'aquest node.
- *hyerarchical* : Retorna els nodes de forma jeràrquica (per defecte true).
- *depth* : Nivell de profunditat (Si no s'especifica es retornen tots els nivells).
- *term* : Paraula de cerca per filtrar els nodes (si s'especifica, es retornaran els nodes sense jerarquia).
- *instance\_id* : Retorna els nodes en que l'id d'instància sigui el passat.
- *entity\_id* : Retorna els nodes en que l'id de la entitat sigui el passat.
- *census\_id* : Retorna els nodes en que l'id del cens sigui el passat.

##### getNode($tree\_id, $node\_id, $options=\[\])

[](#getnodetree_id-node_id-options)

Retorna un node d'un arbre passant els seus IDs.

##### getNodeChildren($tree\_id, $node\_id, $options=\[\])

[](#getnodechildrentree_id-node_id-options)

Retorna els fills d'un node

##### getNodeParent($tree\_id, $node\_id, $options=\[\])

[](#getnodeparenttree_id-node_id-options)

Retorna el pare d'un node

##### getNodeAncestors($tree\_id, $node\_id, $options=\[\])

[](#getnodeancestorstree_id-node_id-options)

Retorna els ancestres d'un node

##### getNodeDescendants($tree\_id, $node\_id, $options=\[\])

[](#getnodedescendantstree_id-node_id-options)

Retorna els descendents d'un node

##### getNodeSiblings($tree\_id, $node\_id, $direction=null, $options=\[\])

[](#getnodesiblingstree_id-node_id-directionnull-options)

Retorna els germans d'un node. Es pot especificar si volem només els següents (next) o anteriors (prev)

### Classes

[](#classes)

Els diferents mètodes de consulta retornen objectes de diferents classes. A través d'aquestes classes també podem fer crides a diferents mètodes.

#### Census

[](#census)

##### entity($entity\_name)

[](#entityentity_name)

Returns an entity in the census given its name

```
$entity=$census->entity('test')
```

##### entities()

[](#entities-1)

Returns all the census entities

#### Entity

[](#entity)

##### fields()

[](#fields-1)

Returns all the entity fields

##### field($short\_name)

[](#fieldshort_name)

Returns an entity field given its name

##### relatedEntity($short\_name)

[](#relatedentityshort_name)

Returns the related entity given an entity-relation field name

##### forCensus($census\_name)

[](#forcensuscensus_name)

Locates the entity in the given census. The following methods only work if this has been called previously

##### all($options=\[\])

[](#alloptions)

Returns all the instances of the entity

```
$instances=$entity->forCensus("census_name")->all();
```

##### get($id, $options=\[\])

[](#getid-options)

Returns an instance of the entity given its id. See [instances](#instances) method available options.

##### search($filters, $options=\[\])

[](#searchfilters-options)

Search instances in the entity. See [search](#search) method for filter options.

##### tree( $short\_name, $options=\[\])

[](#tree-short_name-options)

Returns the whole instances tree in the entity given the field name that establishes the instances parenthood hyerarchy.

##### create( $options=\[\])

[](#create-options)

Creates an instance in the entity. See [createInstance](#createInstance) method

#### Field

[](#field)

##### settings()

[](#settings)

Returns the field settings

##### options()

[](#options-5)

For select field types, returns the select options.

##### gridFields()

[](#gridfields)

For grid field types, returns the grid fields.

##### relatedEntity()

[](#relatedentity)

For entity-relation field types, returns the related entity

#### Instance

[](#instance)

##### entity()

[](#entity-1)

Return the instance entity

##### census()

[](#census-1)

Return the instance census

##### update($fields)

[](#updatefields)

Updates the instance given an array of fields. See [createInstance](#createInstance) method

##### get($field\_name)

[](#getfield_name)

Gets the value of given field

##### set($field\_name, $value)

[](#setfield_name-value)

Sets the value of given field

##### add($field\_name, $value)

[](#addfield_name-value)

Adds a value to a given field. Useful for multiple fields and grids.

##### clear($field\_name)

[](#clearfield_name)

Clears (sets to null) the given field.

##### remove($field\_name, $item\_id)

[](#removefield_name-item_id)

Removes an item from a given field. Useful for multiple fields and grids.

##### delete()

[](#delete)

Soft deletes the instance

##### destroy()

[](#destroy)

Destroys the instance

#### TreeNode

[](#treenode)

##### parent($options=\[\])

[](#parentoptions)

Retorna el no de pare

##### siblings($direction=null, $options=\[\])

[](#siblingsdirectionnull-options)

Retorna els germams

##### descendants($options=\[\])

[](#descendantsoptions)

Retorna els descendents

##### ancestors($options=\[\])

[](#ancestorsoptions)

Retorna els ancestres

##### children($options=\[\])

[](#childrenoptions)

Retorna els fills directes

Vía Base de Dades (Eloquent )
-----------------------------

[](#vía-base-de-dades-eloquent-)

Alternativament podem fer servir Eloquent per accedir als models del censat, sempre i quant tinguem accés a la base de dades.

Simplement cal definir els nostres models extenent el model base `CensatEntityModel`.

```
namespace App\Models;

use Ajtarragona\Censat\Models\Eloquent\CensatEntityModel;

class NomEntitat extends CensatEntityModel
{
    public $entity_name = 'nom_entitat';  // nom de la entitat
    public $census_id = 28; //id del cens (només necessari si la entitat està a més d'un cens)

}
```

Estem treballant amb models Eloquent, per la qual cosa tenim disponible tota la seva funcionalitat: QueryBuilder, Relacions, Scopes, Mutators, etc.

[Documentació d'Eloquent](https://laravel.com/docs/5.8/eloquent)

> **IMPORTANT!** Per ara només és aconsellable fer servir aquest mètode per consulta. Realitzar modificacions (create, update, delete) directament podria donar generar inconsistència a les dades: no s'auditen els canvis, no s'actualitza caché...

### Camps data

[](#camps-data)

Si la nostra entitat té algun camp de tipus **Data**, podem indicar-ho aprofitant el mutator de Laravel `$dates`.

```
class Tramit extends CensatEntityModel
{
    ...
    protected $dates = [
        'data_inici',
        'data_final'
    ];
    ...

```

### Integracions i Mapes

[](#integracions-i-mapes)

Els camps de tipus **Integració** o de tipus **Mapa** son objectes json internament, per la qual cosa ho podem indicar aprofitant el casting d'atributs de Laravel:

```
class Tramit extends CensatEntityModel
{
    ...
    protected $casts = [
        'unitat_organica' => 'object'
    ];
    ...

```

### Relacions

[](#relacions)

Si una entitat té algun camp de **Relació**, ho podem indicar a partir dels atributs `$simple_relations` i `$multiple_relations`, indicant el nom del camp i el nom de la classe que modela la entitat relacionada.

```
class Tramit extends CensatEntityModel
{

    public $entity_name = 'tramit';

    protected $simple_relations = [
        'estruc_org' => '\App\Models\Tramits\UnitatOrganica'
    ];

    protected $multiple_relations = [
        'classificacio_tematica' => '\App\Models\Tramits\TematicaTramit',
        'classificacio_perfil' => '\App\Models\Tramits\Perfil'
    ];

    ...
```

Definint els camps de relació d'aquesta manera aquests automàticament esdevenen relacions Eloquent al model. Podem fer coses com aquestes, per exemple:

```
$tramit=Tramit::find(1);
$tramit->estruc_org; //aixo retorna una instància de \App\Models\Tramits\UnitatOrganica o null
$tramit->classificacio_tematica; //aixo retorna una col·lecció
$tramit->classificacio_tematica()->where('id','>',10)->orderBy('id') //aqui tenim el QueryBuilder

$tramits=Tramit::has('classificacio_tematica')->get() //retorna tramits amb alguna classsificació temàtica
```

Aquests exemples d'Eloquent son extensibles als camps Select i Grids que veurem tot seguit.

### Selects

[](#selects)

Si una entitat té algun camp de tipus **Select**, ho podem indicar a partir dels atributs `$simple_selects` i `$multiple_selects`, indicant el nom del camp i el nom de la classe que modela el select.

```
class Tramit extends CensatEntityModel
{

    public $entity_name = 'tramit';

    protected $simple_selects = [
        'tipus_instancia' => '\App\Models\Tramits\TipusSolicitud',
        'destinatari' => '\App\Models\Tramits\Destinatari'
    ];

    protected $multiple_selects = [
        'formes_tramitacio' => '\App\Models\Tramits\FormaTramitacio'
    ];

    ...
```

Aquesta classe del Select haurà d'extendre la classe `CensatSelectModel`, indicant el nom de la entitat i el nom del camp.

```
namespace App\Models\Tramits;
use Ajtarragona\Censat\Models\Eloquent\CensatSelectModel;

class TipusSolicitud extends CensatSelectModel
{
    public $entity_name="tramit";
    public $field_name="tipus_instancia";

}
```

### Grids

[](#grids)

Si una entitat té alguna graella, ho podem indicar a partir de l'atribut `$grids`, indicant el nom de la graella i el nom de la classe que la modela.

```
class Tramit extends CensatEntityModel
{

    public $entity_name = 'tramit';

    protected $grids = [
        'autors' => '\App\Models\Tramits\Autor'
    ];

    ...
```

Aquesta classe del Grid haurà d'extendre la classe `CensatGridModel`, indicant el nom de la entitat i el nom de la graella.

```
namespace App\Models\Tramits;
use Ajtarragona\Censat\Models\Eloquent\CensatGridModel;

class Autor extends CensatGridModel
{
    public $entity_name ="tramit";
    public $grid_name ="autors";

   ...
}
```

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance52

Moderate activity, may be stable

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~46 days

Recently: every ~60 days

Total

42

Last Release

657d ago

Major Versions

v0.0.3 → v1.0.02019-11-12

v1.0.13 → v2.0.02020-10-30

PHP version history (2 changes)v0.0.1PHP &gt;=7.0.0

v2.1.21PHP ^7.1.3|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/eae0bc56bebf7416d9c7ad9f0c8a7aa91e8911c8f8a8a34207d90a201df3deff?d=identicon)[ajtarragona](/maintainers/ajtarragona)

---

Top Contributors

[![ajtarragona](https://avatars.githubusercontent.com/u/45968689?v=4)](https://github.com/ajtarragona "ajtarragona (60 commits)")

---

Tags

laravellaravel5

### Embed Badge

![Health badge](/badges/ajtarragona-censat-client/health.svg)

```
[![Health](https://phpackages.com/badges/ajtarragona-censat-client/health.svg)](https://phpackages.com/packages/ajtarragona-censat-client)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[statamic/cms

The Statamic CMS Core Package

4.8k3.6M993](/packages/statamic-cms)[bagisto/bagisto

Bagisto Laravel E-Commerce

27.6k172.1k9](/packages/bagisto-bagisto)[backpack/crud

Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.

3.4k3.7M223](/packages/backpack-crud)[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k9.5M89](/packages/openai-php-laravel)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M46](/packages/tencentcloud-tencentcloud-sdk-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
