ChronoConnectivity v5 e ChronoForms v5 utilizzano una sintassi diversa per la dichiarazione WHERE. Questo articolo fornisce alcuni esempi delle forme che possono essere utilizzate per costruire le dichiarazioni più complesse.

Note: questi esempi funzionano con ChronoForms v5 o ChronoConnectivity v5

I ogni caso il codice pre creare una clausola WHERE va nella casella  'Condizioni' presente nella scheda Modelli

Usare '='

<?php
 return array('model_id.column' => 'value');
 ?>

Usare != (o espressione simile)

<?php
 return array( 'model_id.column !=' => 'value' );
 ?>

Usare AND

Just add more than one entry to the array and they will all be required

Usato per aggiungere più di una voce alla matrice 

<?php return array( 'model_id.column' => 'value', 'model_id.column_2' => 'value_2' ); ?>

Usare OR

Aggiungere un array di valori

<?php
 return array( 'model_id.column' => array('some value', 'another value', . . . ) );
 ?>

Usare LIKE

<?php
 return array( 'model_id.column LIKE' => '%value%' );
 ?>
 

Or, con variabile PHP

<?php
 return array( 'model_id.column LIKE' => '%'.$variable.'%' );
 ?>

Ottenere valori in CC/CFv5

ChronoForms v5 memorizza eventuali valori che ha in $form->data array ed è possibile accedervi utilizzando $form->data['nome_variabile']. Allo stesso modo ChronoConnectivity v5 immagazzina eventuali valori che ha da l'URL della pagina nella matrice $this->data array ed è possibile accedere ai valori tramite $this->data['nome_variabile'].

 Ad esempio se si vuole usare la variabile gcb inviata tramite CC to CFv5 si potrebbe avere una clausola WHERE come questa

<?php
 return array('model_id.column' => $form->data['gcb']);
 ?>
 

O, se si vuole utilizzare un Modello Id che salva i dati in un sub-array la condizione WHERE potrebbe essere simile a questa:

<?php
 return array('model_id.column' => $form->data['model_id']['var_name'];
 ?>

E' possibile adattare qualsiasi degli altri esempi allo stesso modo.

 

Ottenere i record dell'utente corrente

Se hai una colonna nella tabella del database con l'id dell'utente, si potranno filtrare i record dell'utente correntemente loggato, utilizzando il campo id

<?php $user = \JFactory::getUser(); return array('model_id.user_id' => $user->id); ?>

Questo può essere combinato con quanto detto precedentemente.

 

Una query più complessa

Puoi aggiungere più stringhe WHERE anteponendo con la colonna:on :

<?php
 return array (":model.column = 'value' OR model.column_2 = 'value_2'");
 ?>
 

o

<?php
 // where $var is an integer
 $var = JRequest::getVar('param','', 'get');
 return array (":test.id > {$var}");
 ?>
 

Ma notare che è possibile citare eventuali valori di stringa prima del loro utilizzo:

<?php // where $var is an string $var = JRequest::getVar('param','', 'get'); $dbo = \GCore\Models\MODEL_ID::getInstance()->dbo; $var = $dbo->quote($var); return array (":test.id > {$var}"); ?>

 

Una query condizionale... 

Puoi utilizzare qualsiasi codice PHP nella casella Conditions per controllare i valori del form e impostare condizioni diverse quando ne hai bisogno

<?php
 if ( empty($form->data['input_name']) ) { 
   return array('model_id.column' => 'value');
 } else { 
   return array (":test.id > { $form->data['input_name']}");}
 ?>