laravel-translatable を使用して、特定の言語で Laravel 記事を取得します。
P粉598140294
2023-07-31 15:35:41
<p>私は、laravel 翻訳可能ライブラリを使用して、多言語 Web サイト システムを開発しています。この Web アプリケーションにはフロントエンドがなく、データは API を通じて読み書きされます。私が直面している問題は、データベースに保存されているすべてのレコードを 1 つ以上の言語で取得できないことです。たとえば、「ブログ」テーブルからは英語とフランス語のタイトルを持つすべてのレコードを取得しています。このライブラリのドキュメントにはこれについて明示的に言及されておらず、私が試したコードでは修正できませんでした。以下に私が試したコード例を示しますが、問題を解決するものはありませんでした: </p>
<pre class="brush:php;toolbar:false;">Route::get('/', function () {
応答を返す()->json(
DB::table('ブログ')
->get()
->filter(関数 ($blog) {
return $blog->getTranslations('title', ['en']);
})
);
});
Route::get('/', function () {
応答を返す()->json(
DB::table('ブログ')
->get()
->filter(関数 ($blog) {
returncollect(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></スパン></pre>
<p><br /></p>
次の例のようなミドルウェアを作成することで、各リクエストのロケールを処理できます。 リーリー
その後、目的のロケールをクエリ文字列としてエンドポイントに簡単に渡すことができます。リーリー
また、クエリ ビルダーの代わりに Eloquent モデルを必ず使用してください。