在下拉菜单中使用2个表

时间:2019-08-24 01:34:06

标签: laravel

我是laravel的新手。我只想问一下如何在下拉菜单中使用两个表?例如,我有upper_ranking和lower_ranking表,我想创建一个列出所有排名的下拉列表。您如何控制它?

CREATE TABLE public.upper_rankings
(
  id bigint NOT NULL DEFAULT nextval('upper_rankings_id_seq'::regclass),
  ranking character varying(255) NOT NULL,
  CONSTRAINT upper_rankings_pkey PRIMARY KEY (id)
)

CREATE TABLE public.lower_rankings
(
  id bigint NOT NULL DEFAULT nextval('lower_rankings_id_seq'::regclass),
  ranking character varying(255) NOT NULL,
  CONSTRAINT lower_rankings_pkey PRIMARY KEY (id)
)

1 个答案:

答案 0 :(得分:0)

填充<select>相对容易。在值(@Elias的想法)上添加前缀以标识哪个表属于该表。

在控制器中:

return view('index', [
    'upperRankings' => UpperRanking::all(),
    'lowerRankings' => LowerRanking::all(),
]);

在视图中:

<select>
    @foreach($upperRankings as $ranking)
        <option value="upper_{{ $ranking->id }}">{{ $ranking->ranking }}</option>
    @endforeach
    @foreach($lowerRankings as $ranking)
        <option value="lower_{{ $ranking->id }}">{{ $ranking->ranking }}</option>
    @endforeach
</select>

我同意@Elias。为什么不简化数据库设计并为两者使用单个表?例如,使用列is_upper TRUE / FALSE来确定记录是排名较高还是较低:

CREATE TABLE public.rankings
(
  id bigint NOT NULL DEFAULT nextval('rankings_id_seq'::regclass),
  ranking character varying(255) NOT NULL,
  is_upper boolean not null,
  CONSTRAINT rankings_pkey PRIMARY KEY (id)
)

这使得提交表单(可能在storeupdate控制器函数中)之后的逻辑变得更加容易。

相关问题