Utilisez laravel-translatable pour obtenir des articles Laravel dans une langue spécifique.
P粉598140294
2023-07-31 15:35:41
<p>J'utilise la bibliothèque laravel-translatable pour développer un système de site Web multilingue. Dans cette application Web, il n'y a pas de front-end et les données sont lues et écrites via l'API. Le problème auquel je suis confronté est que je ne parviens pas à obtenir tous les enregistrements stockés dans la base de données dans une ou plusieurs langues. Par exemple, à partir de la table « blog », je reçois tous les enregistrements avec des titres anglais et français. La documentation de cette bibliothèque ne le mentionne pas explicitement et je n'ai pas pu le corriger avec le code que j'ai essayé. Voici des exemples de code que j'ai essayés, mais aucun n'a résolu mon problème : </p>
<pre class="brush:php;toolbar:false;">Route::get('/', function () {
renvoyer la réponse()->json(
DB::table('blogs')
->obtenir()
->filtre(fonction ($blog) {
return $blog->getTranslations('title', ['en']);
})
);
});
Route::get('/', fonction () {
renvoyer la réponse()->json(
DB::table('blogs')
->obtenir()
->filtre(fonction ($blog) {
return collect(json_decode($blog->title))->has('en');
})
);
});
Route::get('/', fonction () {
return réponse()->json(Blog::titleEqualsEn()->get(), 200);
});<span style="font-family:'sans serif, tahoma, verdana, helvetica';"><span style="white-space:nowrap;"> </span></ span>≪/pré>
<p><br /></p>
Vous pouvez gérer les paramètres régionaux pour chaque requête en créant un middleware, comme cet exemple :
Ensuite, vous pouvez facilement transmettre les paramètres régionaux souhaités sous forme de chaîne de requête à votre point de terminaison.
Assurez-vous également d'utiliser le modèle Eloquent au lieu du générateur de requêtes.