×
This forum has been locked. Please submit new Feature Requests on GitHub: github.com/Jensen-Technologies/component-creator-issues/issues
Foreign key field additional SQL parameters
RATE IT SERVICES, SIA
Nouveau membre
Posts: 2
il y a 8 ans 7 mois #1295
par RATE IT SERVICES, SIA
Foreign key field additional SQL parameters a été créé par RATE IT SERVICES, SIA
Hi there!
Would be great if a foreign key field could have additional parameter for select query.
Now we select table, key field and value field ..
But how about extra query? For example, I want to select only those records where certain fields have specific value.
SELECT id, name from #__sometable where otherfield=1 ..
I see that this could be possible with SQL list, but then there's no EMPTY RECORD (like Please select value (0) ) ..
I tried to do so with UNION ..
(SELECT '0' as id, 'Please select' as name from #__sometable LIMIT 1) UNION (SELECT id, name from #__sometable where parentid=0)
But then I get mysql errors when any field has selected that parentid field .. HAVING id='1'
thanks
Would be great if a foreign key field could have additional parameter for select query.
Now we select table, key field and value field ..
But how about extra query? For example, I want to select only those records where certain fields have specific value.
SELECT id, name from #__sometable where otherfield=1 ..
I see that this could be possible with SQL list, but then there's no EMPTY RECORD (like Please select value (0) ) ..
I tried to do so with UNION ..
(SELECT '0' as id, 'Please select' as name from #__sometable LIMIT 1) UNION (SELECT id, name from #__sometable where parentid=0)
But then I get mysql errors when any field has selected that parentid field .. HAVING id='1'
thanks
Connexion ou Créer un compte pour participer à la conversation.
Andres Maeso
Membre platinium
Posts: 338
il y a 8 ans 7 mois #1296
par Andres Maeso
Andrés Maeso
Customer relations manager at Joomla Component Creator.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Réponse de Andres Maeso sur le sujet Foreign key field additional SQL parameters
Hi!
Thanks for your feedback. Sounds like a good idea, let's see if it gets more votes!
Regards,
Andrés.
Thanks for your feedback. Sounds like a good idea, let's see if it gets more votes!
Regards,
Andrés.
Andrés Maeso
Customer relations manager at Joomla Component Creator.
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Connexion ou Créer un compte pour participer à la conversation.
RATE IT SERVICES, SIA
Nouveau membre
Posts: 2
il y a 8 ans 7 mois #1297
par RATE IT SERVICES, SIA
Réponse de RATE IT SERVICES, SIA sur le sujet Foreign key field additional SQL parameters
administrator\models\forms\tablename.xml
add new attribute to field : where="parent_id=0"
administrator\models\fields\foreignkey.php
private $where_extra;
protected function getInput()
{
.......
$this->where_extra = (string) $this->getAttribute('where');
........
if($this->where_extra != '')
{
$query->where($this->where_extra);
}
....
}
works fine for me, it's just annoying to modify all this after rebuild ..
add new attribute to field : where="parent_id=0"
administrator\models\fields\foreignkey.php
private $where_extra;
protected function getInput()
{
.......
$this->where_extra = (string) $this->getAttribute('where');
........
if($this->where_extra != '')
{
$query->where($this->where_extra);
}
....
}
works fine for me, it's just annoying to modify all this after rebuild ..
Connexion ou Créer un compte pour participer à la conversation.
Jeremy Morris
Nouveau membre
Posts: 4
il y a 8 ans 3 mois #1399
par Jeremy Morris
Réponse de Jeremy Morris sur le sujet Foreign key field additional SQL parameters
I have also added a "where" attribute to limit foreignkey results based on a condition.
// If the return is to be limited by condition
$this->where = ( trim ( $this->getAttribute('where') ) <> '' ) ? (string) trim( $this->getAttribute('where') ) : NULL;
.......
// add where filtering, if set
if ( $this->where ) {
$query->where($this->where);
} // end if
I have also found that displaying a completely empty select box is pretty useless so I set empty foreignkey fields to hide.
if ( count( $options ) ) {
$html = JHtml::_('select.genericlist', $options, $this->name, $input_options, 'value', 'text', $value, $this->id);
} else {
$html = '';
$this->hidden = true;
}
An additional attribute, such as "hideempty", could be helpful.
// If the return is to be limited by condition
$this->where = ( trim ( $this->getAttribute('where') ) <> '' ) ? (string) trim( $this->getAttribute('where') ) : NULL;
.......
// add where filtering, if set
if ( $this->where ) {
$query->where($this->where);
} // end if
I have also found that displaying a completely empty select box is pretty useless so I set empty foreignkey fields to hide.
if ( count( $options ) ) {
$html = JHtml::_('select.genericlist', $options, $this->name, $input_options, 'value', 'text', $value, $this->id);
} else {
$html = '';
$this->hidden = true;
}
An additional attribute, such as "hideempty", could be helpful.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.057 secondes