我是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)
)
答案 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)
)
这使得提交表单(可能在store
或update
控制器函数中)之后的逻辑变得更加容易。