如何根据国家/地区值获取标志?

时间:2019-11-21 10:03:14

标签: php database laravel

我有一个选择选项国家/地区列表,我需要根据这些值从数据库标志中获取。

这是我的控制人:

         if(count($data['user']['career_path']) > 0)
            {
                $careerpath =  array_reverse($data['user']['career_path']->toArray());
                $data['company'] = $careerpath[0]['company'];
                $data['industry'] = $careerpath[0]['industry']['industry'];
                $data['department'] = $careerpath[0]['department']['department'];
                $data['job_title'] = $careerpath[0]['functions']['function'];
                $flags = \App\Country::lists('flag', 'id');
                $flag = $flags->get($careerpath->location);
                dd($flags);


            }

所以,这是逻辑:

我有一张名为countries的国家/地区的表格。

1.id --- 2.country --- 3.flag

那是我所有国家的餐桌。

以下是我在视图中使用此国家/地区列表的方式:

{!! Form::select('location',$country_id ,$user->country->id, ['class' => 'js-example-basic-single']) !!}

其中$country_id

$data['country_id'] = \App\Country::lists('country','id');

当我从选择的表单中选择某个内容(例如希腊或意大利)时,数据库中会保存该列表中国家的ID。(20或21)

我如何看待这种价值?就像这里:

@foreach($user->career_path as $careerpath)
{{$careerpath->location}}
@endforeach

问题是我需要根据country字段中的flag选择idlocation值。

因此,如果我的值为20,则需要基于{{$ careerpath-的值(id 20),从表country获得flag的名称和countries的值> location}}。 $careerpath->location现在返回我的国家/地区ID,我需要据此获取国家/地区名称(来自countrys.country)和标志值(来自countrys.flag)。

2 个答案:

答案 0 :(得分:1)

如果您在$careerpath->location中有一个国家/地区,则可以直接检索标志数据:

if(!empty($careerpath->location)){
     $flags = \App\Country::where('id', $careerpath->location)->select('flag')->first();   
     dd($flags);
}

答案 1 :(得分:0)

UserContactTablePane

然后您可以通过ID获得标志:

$flags = App\Country::lists('flag', 'id');

在循环中:

$flag = $flags[$careerpath->location];
// or
$flag = $flags->get($careerpath->location);