首页 > 解决方案 > Laravel 多语言站点数据库

问题描述

我正在为阿拉伯语和英语建立一个 Laravel 电子商务网站。

假设我有带有标题字段的类别表。我想以两种语言插入标题字段。所以我为title_en和创建了迁移title_ar

<?php
namespace App;
use App\Traits\MultiLanguage;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
    use MultiLanguage;
    protected $fillable = [
        'title_en', 'title_ar',
    ];
    /**
      * This array will have the attributes which you want it to support multi languages
    */
    protected $multi_lang = [
        'title',
    ];
}

这是多语言特征:

<?php

namespace App\Traits;
use Illuminate\Support\Facades\App;
trait MultiLanguage
{

    public function __get($key)
    {
        if (isset($this->multi_lang) && in_array($key, $this->multi_lang)) {
            $key = $key . '_' . App::getLocale();
         }
        return parent::__get($key);
    }
}

但是当表字段也很多时怎么办,如何插入记录。可能吗?

标签: laravellaravel-5e-commerce

解决方案


我不认为拥有title_en并且title_ar是一个好主意。而是只有一个title名为 then 的额外列lang,例如根据您的语言进行查询
FooModel::where('lang', $lang)->get();


推荐阅读