Laravel auto翻译$ request

时间:2017-11-16 08:05:44

标签: php laravel google-translate

我的数据库中有两个表。第一个是工业,第二个是工业语言。

行业表

Schema::create('industries', function (Blueprint $table) {
        $table->increments('id');
        $table->string('industry_name', 100);
        $table->integer('language_id')->default(1);
        $table->timestamps();
    });

Industry_Languages'表

Schema::create('industry_languages', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('industry_id');
        $table->string('industry_name', 200);
        $table->integer('language_id');
        $table->timestamps();
    });

这是我的IndustryController

public function store(Request $request)
{
    $industry = new Industry();
    $industry->industry_name = $request->industryName;
    $industry->save();

    return response()->json($industry);
}

此功能仅将数据存储到行业表中,语言ID = 1,但我也希望将其存储到industry_languages'语言ID = 2的表(因为我的数据库中有一个语言表,包含2行数据:'印度尼西亚','英语')

示例:如果我输入' Halo'在industry_name领域,它将存储在我的行业表中,作为' Halo'在industry_name字段和' 1'在language_id字段中,它还将存储到我的industry_languages'表格'你好'在industry_name字段和' 2'在language_id字段中

我在翻译来自行业表格的请求时遇到问题。 我曾尝试使用Laravel google-translate但是,它没有工作

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用https://github.com/spatie/laravel-translatable

使用laravel-translatable可以执行类似

的操作
public function store(Request $request)
{
    $industry = new Industry(); 
    $industry
    ->setTranslation('industryName', 'en', 'Hello')
    ->setTranslation('industryName', 'es', $request->get('industryName'));

    $industry->save();

    return response()->json($industry);
}

对于其他语言,您可能需要使用翻译包

答案 1 :(得分:0)

我尝试使用this pakcage

但是,它需要谷歌翻译API密钥,我认为这不是免费的。所以,我找到了一个不需要生成API KEY的包:statickidz/php-google-translate-free