首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel的动态菜单上制作(或构思)多种语言?

如何在Laravel的动态菜单上制作(或构思)多种语言?
EN

Stack Overflow用户
提问于 2020-01-31 23:35:01
回答 2查看 2.1K关注 0票数 0

我想在Laravel上做动态菜单。菜单级别将存储在数据库中。但我的问题是,这些菜单必须能够切换到其他语言。所以我不确定laravel-localization是否有能力?下面是我想要的桌子。

代码语言:javascript
复制
menuid       languageA(English)          languageB            languageC
1             menuname1                   www                  xxx
2             menuname2                   yyy                  zzz

如有任何建议或指导将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-01 03:10:04

我喜欢的想法。

这个包包含一个特点,使雄辩的模型可翻译。翻译以json的形式存储。不需要额外的桌子来容纳它们。

表格

代码语言:javascript
复制
id       name
1        {'en' => 'Home', 'id' => 'Beranda'}
2        {'en' => 'About', 'id' => 'Tentang'}

模型

代码语言:javascript
复制
use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;

class Menu extends Model
{
    use HasTranslations;

    public $translatable = ['name'];
}

创建模型

您可以在创建模型时立即设置翻译。下面是一个例子:

代码语言:javascript
复制
$menu = Menu::create([
   'name' => [
      'en' => 'About',
      'id' => 'Tentang'
   ],
]);

翻译

获取当前区域设置的转换的最简单方法是只获取已转换属性的属性。

代码语言:javascript
复制
$menu->name;
票数 2
EN

Stack Overflow用户

发布于 2020-01-31 23:43:26

有很多种方法,例如,您可以为两个表分离数据,如

代码语言:javascript
复制
// Menus
id
link
sort_number
created_at
updated_at

// Menus languages
id
menu_id
title
language
created_at
updated_at

然后根据关系选择它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60012634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档