根据laravel中的当前应用程序区域设置搜索适当的Mysql字段

时间:2016-02-21 07:17:00

标签: php mysql laravel

在多语言网站中,我有产品

的这些字段
product_id
title_fa
title_en
title_ar
desc_fa
desc_en
desc_ar
.
.
.

现在我想根据当前的laravel Locale搜索(例如) title 字段。 我知道我们可以这样使用:

$products   =   Product::where('title_'.App::getLocale(),'LIKE' , '%'.$data['search_value'].'%');

但是我认为这不是很干净,而且很多大字段都不合适。

我正在寻找一种像普通搜索字段一样简单的方法,然后在背景中基于该字段进行laravel搜索根据当前的应用程序区域设置:

$products   =   Product::where('title','LIKE' , '%'.$data['search_value'].'%');

我怎样才能做到最好?

1 个答案:

答案 0 :(得分:1)

您好,如果您想要非常简单的方式搜索产品,请使用以下laravel多语言包

https://github.com/dimsav/laravel-translatable

在这个包中你必须创建2个表一个Product和Product_translate,产品表会有你的基本产品信息,translate会有语言数据,在product_translate表中你可以使用搜索查询,轻松是表列名将保持相同你在哪里使用语言过滤器。