Funciones
Descripción de funciones.
__construct( $allFilters, $nameForm)
$allFilters | array()
$nameForm | string
$allFilters
Nombre para el front => nombre interno
$allFilters = ['Por Nombre' => 'by_name',
'Por Dirección' => 'by_adress' ];
$nameForm
Nombre del formulario utilizado para aplicar los filtros
$nameForm = 'search_web';
Ejemplo de uso...
use DidWeb\MyResourcesBundle\MySearchSystem\MySearchSystem;
class PersonController extends AbstractController
{
public $mySearchSystem;
public function __construct() {
$allFilters = ['Por nombres'=>'by_names'];
$this->mySearchSystem = new MySearchSystem($allFilters, 'person_search_web');
}
}
getAllFilters()
Sin parámetros devuelve la variable $this->allFilters
Ejemplo de uso ...
$this->getAllFilters()
withoutFilters($request)
$request = Symfony\Component\HttpFoundation\Request
Actualiza la variable $this->hasFilters
con la cual determinamos si existen filtros o no. Se utiliza de forma interna.
cleanFilters($request)
$request = Symfony\Component\HttpFoundation\Request
Para limpiar los filtros esto limpia las variables de sesión que mantiene los filtros.
Forma de uso. En el controlador ...
/**
* @Route("/limpiar-filtro", name="person_admin_clean_filter")
*/
public function cleanFilters(Request $request){
$this->mySearchSystem->cleanFilters($request);
return $this->redirectToRoute('person_index');
}
filterStatus($session, $request, $nameFilter)
$session = $request->getSession()
$request = Symfony\Component\HttpFoundation\Request
$nameFilter = string
Se utiliza de forma interna para estabilizar las variables de sesión comprobar si existe el filtro y la variable de sesión.
titlesFiltersActive($request)
$request = Symfony\Component\HttpFoundation\Request
Devuelve la variable $this->filtersActives array donde se almacenan los filtros aplicados utilizado para sacarlo en el template. Ejemplo de uso... Aquí primero se verifica la variable hasFilters y luego se recorre el array filtersActives ...
{% if mySearchSystem.hasFilters %}
<div class="col-12">
{% if mySearchSystem.filtersActives|length > 0 %}
<div class="row pt-2 mb-2 rounded bg-light p-1">
<div class="col-sx-12 col-lg-10 text-left text-secondary">
{% for key,filterActive in mySearchSystem.filtersActives %}
Filtros aplicados...
<span class="label-filteractive">{{ key }}</span> :
<strong class="value-filteractive mr-3"> {{ filterActive|raw }}</strong>
{% endfor %}
</div>
<div class="text-secondary col-sx-12 col-lg-2 text-right">
<a href="{{ url('person_web_clean_filter') }}"
title="Elimnar filtro"><i class="fas fa-trash-alt"></i></a>
</div>
</div>
{% endif %}
</div>
{% endif %}
filterByNames($allElements, $request, $nameFilter, $feldsToSearch)
$allElements = array objetos del listado
$request = Symfony\Component\HttpFoundation\Request
$nameFilter = string nombre del filtro
$feldsToSearch = array con los campos en los que ha de buscar.
Esta función devuelve el listado con el filtro aplicado. Ejemplo de uso en un controlador.
public function allFilters($allElements, $request) {
// Filtrado por nombre y apellidos
$resultFilter = $this->mySearchSystem->filterByNames($allElements, $request,
'by_names',
['getName',
'getSurnameFirst',
'getSurnameSecond']);
return $resultFilter;
}
Last updated
Was this helpful?