Maison  >  Questions et réponses  >  le corps du texte

Utilisez laravel-translatable pour obtenir des articles Laravel dans une langue spécifique.

<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粉598140294P粉598140294468 Il y a quelques jours571

répondre à tous(1)je répondrai

  • P粉541565322

    P粉5415653222023-08-01 10:27:03

    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.

    répondre
    0
  • Annulerrépondre