Utilisez laravel-translatable pour obtenir des articles Laravel dans une langue spécifique.
P粉598140294
P粉598140294 2023-07-31 15:35:41
0
1
577
<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>
P粉598140294
P粉598140294

répondre à tous(1)
P粉541565322

Vous pouvez gérer les paramètres régionaux pour chaque requête en créant un middleware, comme cet exemple :

public function handle(Request $request, Closure $next)
    {
        $locales = ['en', 'fr'];

        if($request->has('lang') && in_array($request->input('lang'), $locales)){
            App::setLocale($request->input('lang'));
        }
        return $next($request);
    }

Ensuite, vous pouvez facilement transmettre les paramètres régionaux souhaités sous forme de chaîne de requête à votre point de terminaison.

GET http://localhost:8000/api/users?lang=en

Assurez-vous également d'utiliser le modèle Eloquent au lieu du générateur de requêtes.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal