首页 > 解决方案 > 如何在 laravel 中转换并显示数据库中的值

问题描述

如果数据库中的值为“FC”,我想将出口名称显示为“Food”,如果数据库中的值为“EX”,则在每个下拉菜单中显示“Express”。

这是我的控制器

$outlet_name = StoreFC::select('loc_type')
      ->groupBy('loc_type')
      ->orderBy('loc_type', 'ASC')
      ->get();

$district_name = StoreFC::select('location')
    ->groupBy('location')
      ->orderBy('location', 'ASC')
      ->get();
 return view('test.store-fc', compact('outlet_name','district_name'));

这是我的看法

<div class="form-group">
  <select name="filter_district" id="filter_district" class="form-control" required>
     <option value="">Select Location</option>
       @foreach ($district_name as $district)
          <option value="{{ $district->location }}">{{ $district->location }}</option>
       @endforeach
  </select>
</div>

<div class="form-group">
  <select name="filter_outlet" id="filter_outlet" class="form-control" required>
     <option value="">Select Outlet</option>
        @foreach($outlet_name as $outlet)
           <option value="{{ $outlet->loc_type }}">{{ $outlet->loc_type }}</option>
        @endforeach
  </select>
</div>

这是我的模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

    class StoreFC extends Model
    {
        protected $table = 'store_foodcity';
    }

这就是它现在在下拉菜单中的显示方式

这就是它现在在下拉菜单中的显示方式

标签: laravellaravel-5laravel-6laravel-6.2

解决方案


您需要在模型 StoreFC 中创建自定义 getter。

[ https://laravel.com/docs/5.8/eloquent-mutators#defining-an-accessor][1]

你能做的最好的事情是为“FX”创建一个全名为“Food”的新列,否则......每次你在数据库中更改某些内容时,你都必须修改那个 mutator。


推荐阅读