특정 언어로 된 Laravel 기사를 얻으려면 laravel-translatable을 사용하십시오.
P粉598140294
2023-07-31 15:35:41
<p>저는 다국어 웹사이트 시스템을 개발하기 위해 laravel-translatable 라이브러리를 사용하고 있습니다. 이 웹 애플리케이션에는 프런트 엔드가 없으며 API를 통해 데이터를 읽고 씁니다. 내가 직면한 문제는 하나 이상의 언어로 데이터베이스에 저장된 모든 레코드를 가져올 수 없다는 것입니다. 예를 들어 '블로그' 테이블에서 제목이 영어와 프랑스어인 모든 레코드를 가져옵니다. 이 라이브러리에 대한 문서에는 이에 대한 명시적인 언급이 없으며, 제가 시도한 코드로는 문제를 해결할 수 없었습니다. 다음은 제가 시도한 코드 예제입니다. 그러나 어느 것도 내 문제를 해결하지 못했습니다. </p>
<pre class="brush:php;toolbar:false;">Route::get('/', function () {
응답()->json(을 반환합니다.
DB::테이블('블로그')
->얻기()
->filter(함수 ($blog) {
return $blog->getTranslations('title', ['en']);
})
);
});
경로::get('/', 함수 () {
응답()->json(을 반환합니다.
DB::테이블('블로그')
->얻기()
->filter(함수 ($blog) {
return Collect(json_decode($blog->title))->has('en');
})
);
});
경로::get('/', 함수 () {
return response()->json(Blog::titleEqualsEn()->get(), 200);
});<span style="font-family:'sans serif, tahoma, verdana, helvetica';"><span style="white-space:nowrap;"> </span></ 스팬>
<p><br /></p>
다음 예와 같이 미들웨어를 생성하여 각 요청에 대한 로케일을 처리할 수 있습니다.
으아악이후에는 원하는 로케일을 쿼리 문자열로 엔드포인트에 쉽게 전달할 수 있습니다.
으아악또한 쿼리 빌더 대신 Eloquent 모델을 사용해야 합니다.