在我的Laravel模型控制器中,我有: 公共函数guestInfo($ id)
{
$guests = Person::where('id', $id)
->with('languages')
->get();
return view('layouts.visitor', ['guests' => $guests]);
}
在我的刀片文件中,我有这个:
@foreach ($guests as $guest)
some html stuff in here
{!! Form::select('name', $guest->languages->pluck('name')->all(), ['class' => 'form-control']) !!}
more html
@endforeach
Person是db表的模型“people”和“languages”是相对模型“属于”Person。
在我的语言表中,我有不同的语言行:“英语,西班牙语等”每个都在它自己的行中,它有自己的ID。
我的目标是让所有语言出现。但是目前使用上面的代码我只能显示一种语言。
有什么想法吗?
答案 0 :(得分:1)
您的代码将仅检索与人员相关的语言。如果您想要显示所有语言,只需将其检索为id => name
对并传递给您的视图。
$guests = Person::where('id', $id)->get();
$languagess = Language::pluck('name', 'id);
然后使用foreach
$languages
@foreach ($languages as $key => $val)
{!! Form::select('name', $key, ['class' => 'form-control']) !!}
@endforeach
答案 1 :(得分:0)
我最终在@devnullΨ的帮助下这样做了。不完全像他的建议,但它给了我一些方向。
控制器:
public function guestInfo($id)
{
$guests = Person::where('id', $id)
->with('languages')
->get();
$languages = Language::pluck('name')->toArray();
return view('layouts.visitor', ['guests' => $guests, 'languages' => $languages]);
}
然后在我的刀片中:
{!! Form::select('name', $languages, 'name', ['placeholder' => '<select>','class'=>'form-control']) !!}