Php 拉威尔5.4摘下一整张单子

Php 拉威尔5.4摘下一整张单子,php,laravel,Php,Laravel,在我的Laravel模型控制器中,我有: 公共功能guestInfo($id) 在我的刀片文件中,我有以下内容: @foreach ($guests as $guest) some html stuff in here {!! Form::select('name', $guest->languages->pluck('name')->all(), ['class' => 'form-control']) !!} more html @endforeach

在我的Laravel模型控制器中,我有: 公共功能guestInfo($id)

在我的刀片文件中,我有以下内容:

        @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表“persons”的一个模型,“languages”是“属于”Person的相对模型

在我的语言表中,我有不同的语言行:“英语、西班牙语等”,每一行都有自己的id。
我的目标是让所有的语言都出现。然而,目前使用上述代码,我只会显示一种语言


有什么想法吗?

您的代码将只检索与人相关的语言。如果要显示所有语言,只需将它们作为
id=>name
对检索并传递到视图

 $guests = Person::where('id', $id)->get();
 $languagess = Language::pluck('name', 'id);
然后使用
$languages

@foreach ($languages as $key => $val)

  {!! Form::select('name', $key, ['class' => 'form-control']) !!}

@endforeach

最后,在@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']) !!}
{!!表单::选择('name',$languages,'name',['placeholder'=>'','class'=>'Form-control'])

如果您执行
dd($guest->languages)
在您的
控制器中
是否得到一个包含多种语言的数组?这会导致错误:为foreach()@devnullψ提供的参数无效您是否转储了“$languages”?您应该首先检查数组是否为空,然后才遍历它
{!! Form::select('name', $languages, 'name', ['placeholder' => '<select>','class'=>'form-control']) !!}