Remarque : il s'agit de Laravel 5.3.
En fait, j'exécute une requête lorsqu'un utilisateur sélectionne la traduction arabe Le code SQL complet ressemble à ceci
select s.ref, t.text as ref_ar
FROM stores AS s
INNER JOIN
(SELECT item, text
FROM translator_translations
WHERE locale ='ar'
AND namespace ='*'
AND item like 'store.ref%'
) AS t
ON substring(s.ref_translation from 14 for 26) = t.item;
Je ne vois pas beaucoup de documentation sur les sous-requêtes dans la documentation officielle de Laravel (il y a des trucs sur les jointures internes, mais ce n'est pas suffisant) et les conseils de SO semblent extra-hacky des conseils ?
contexte
ceci sera utilisé comme une portée à l'intérieur d'un modèle, donc cela fonctionne par exemple :
public function scopeFilterLanguage($query, $language_id)
{
if (!$language_id || intval($language_id) != LanguageConstants::ARABIC_LANGUAGE_ID) {
return $query;
}
return $query->whereRaw("
substring(ref_translation from 14 for 26) in
(select item
from
translator_translations
where
locale ='ar' and namespace ='*'
and
item like 'store.ref%')");
}
mais ça ne me donne pas ce que je veux. (c'est à dire que je dois utiliser la version plus grande au début de ce post).