Verwenden Sie laravel-translatable, um Laravel-Artikel in einer bestimmten Sprache zu erhalten.
P粉598140294
P粉598140294 2023-07-31 15:35:41
0
1
529
<p>Ich verwende die laravel-translatable-Bibliothek, um ein mehrsprachiges Website-System zu entwickeln. In dieser Webanwendung gibt es kein Frontend und Daten werden über die API gelesen und geschrieben. Das Problem, mit dem ich konfrontiert bin, besteht darin, dass ich nicht alle in der Datenbank gespeicherten Datensätze in einer oder mehreren Sprachen abrufen kann. Aus der Tabelle „Blog“ erhalte ich beispielsweise alle Datensätze mit den Titeln Englisch und Französisch. In der Dokumentation zu dieser Bibliothek wird dies nicht ausdrücklich erwähnt, und ich konnte es mit dem Code, den ich ausprobiert habe, nicht beheben. Hier sind Codebeispiele, die ich ausprobiert habe, aber keines hat mein Problem gelöst: </p> <pre class="brush:php;toolbar:false;">Route::get('/', function () { return Response()->json( DB::table('Blogs') ->get() ->filter(function ($blog) { return $blog->getTranslations('title', ['en']); }) ); }); Route::get('/', function () { return Response()->json( DB::table('Blogs') ->get() ->filter(function ($blog) { return Collect(json_decode($blog->title))->has('en'); }) ); }); Route::get('/', function () { return Response()->json(Blog::titleEqualsEn()->get(), 200); });<span style="font-family:'sans serif, tahoma, verdana, helvetica';"><span style="white-space:nowrap;"</span></ span></pre> <p><br /></p>
P粉598140294
P粉598140294

Antworte allen(1)
P粉541565322

你可以通过创建一个中间件来处理每个请求的语言环境,就像这个例子一样:

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);
    }

之后,你可以很容易地将你想要的语言环境作为查询字符串传递给你的端点。

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

此外,请确保使用Eloquent模型而不是查询构建器。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!