如何使用dimsav/laravel可翻译包获取特定值/名称

如何使用dimsav/laravel可翻译包获取特定值/名称,laravel,Laravel,我一直在关注这个问题。我创建了两个表: 国家 国家翻译 现在我更改了列name=>key和value,因为我可以通过查询key获得值(lang text) 比如说: $r = 'DE';//App::getLocale(); // 'fr' $germany = Country::where('code', $r)->first(); // I want to get value where key= 'contacts-last-name' $translation = $germa

我一直在关注这个问题。我创建了两个表:

  • 国家
  • 国家翻译
  • 现在我更改了列
    name=>key
    value
    ,因为我可以通过查询
    key
    获得值(lang text)

    比如说:

    $r = 'DE';//App::getLocale(); // 'fr'
    $germany = Country::where('code', $r)->first();
    
    // I want to get value where key= 'contacts-last-name'
    $translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->value;
    
    print_r($translation);
    exit("----");
    
    我得到:

    ERROR: Undefined property
    
    如何使用新查询/子查询(键)获取特定值


    举个例子,这里是我的方法和视图

    更新方法如下所示:

    $translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->first();
    
        echo "<pre>"; print_r($translation->toArray()); exit("----");
    
    在查看页面中,我有一个表单:

    $translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->value;
    
    {{trans('labels.contacts first name')}
    {{trans('labels.contacts last name')}
    
    对于这个问题,我有一个问题,我如何传递翻译数据并始终创建可转换视图
    {{trans('labels.contacts last name')}

    更改您的此行

    $translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->get();
    
    print_r($translation);
    exit("----");
    
    来试试这个

    return view('form-view', compact('translation'));
    
    已更新

    在您看来,
    {{trans('labels.contacts last name')}
    这种方式意味着您正试图从项目中存在的lang目录中获取翻译,实际上这是手动基于文件/数组(key/pair)的方式

    虽然您希望基于Dynamic/DB,但您可以这样做

    $translation
    变量传递到视图中,例如

    <label class="col-sm-2 control-label">{{$translation[0]->value}}</label>
    <div class="col-sm-4">
        <input name="first_name" id="first_name" type="text" class="form-control" required disabled>
    </div>
    
       <label class="col-sm-2 control-label">{{$translation[1]->value}}</label>
        <div class="col-sm-4">
            <input type="text" id="last_name" name="last_name" class="form-control" disabled>
        </div>
    
    然后在
    视图中
    可以执行此操作

    echo "<pre>"; print_r($translation->toArray()); exit("----");
    
    {{$translation[0]->value}
    {{$translation[1]->value}
    
    您可以这样访问它:
    $translation=$germany->{'contacts-last-name:'.$r}

    之后

    Array
    (
        [id] => 1
        [country_id] => 83
        [key] => contacts-last-name
        [value] => Achternaam
        [locale] => DE
    )
    

    当前位置正在工作。那么如何翻译视图中的表单标签或列名?你能帮我得到一个关于方法和视图的例子吗?请在你的问题中添加你的
    print\r()
    转储结果也添加一些你的表单视图结构,我将指导你::为了更好地理解我的问题,我添加了一个新的部分“例如,这里是我的方法和视图”。。请看一看,并允许我获得您的帮助。请这样做,并在您的问题中更新您的此结果<代码>回声“”;打印($translation->toArray());退出(“---”)你必须把这些行注释掉
    print\r($translation);退出(“---”)::返回空值。它不起作用。在doc中,它被称为魔术方法。
    
    echo "<pre>"; print_r($translation->toArray()); exit("----");
    
    Array
    (
        [id] => 1
        [country_id] => 83
        [key] => contacts-last-name
        [value] => Achternaam
        [locale] => DE
    )