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']}");} ?>