类Collection的对象无法转换为int

时间:2017-09-09 09:45:16

标签: php laravel laravel-5.3

我没有从控制器中获得选择选项 这是我的编辑页面

{!! Form::select('channel_id',[''=>'Select A Channel'] + $channels,null,['class'=>'form-control']) !!}

以下是我的控制器

public function edit($id)
{
    $channels = Channel::all() ;

    $d = Discussion::findOrFail($id);

    return view('discussion.edit',compact('channels','d'));
}

1 个答案:

答案 0 :(得分:2)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="jobSkills"> <tr> <th></th> <th></th> </tr> <tr> <td></td> </tr> </table>仅用于获取一组键值对来设置选项。

您可以使用pluck()方法:

Form::select

[''=>'Select A Channel'] + $channels->pluck('name', 'id')->toArray()

如果您不打算将$channels->pluck('name', 'id')->prepend('Select A Channel', '')->toArray() // I'm not sure if you will need `->toArray()` here 用于页面上的任何其他内容,那么您将能够使用控制器中的$channels代替:

pluck()

然后在$channels = Channel::pluck('name', 'id'); 文件中,您可以执行以下操作:

blade

[''=>'Select A Channel'] + $channels->toArray()

您需要更改我与$channels->prepend('Select A Channel', '')->toArray() 一起使用的nameid占位符,以匹配pluck()表中的列名。

最后,根据您对channels的占位符所需的行为,您可以通过以下操作实际设置:

<select>

注意最后一个数组中的{!! Form::select('channel_id', $channels->pluck('name', 'id'), null, ['class'=>'form-control', 'placeholder' => 'Select A Channel']) !!}

https://laravelcollective.com/docs/5.3/html#drop-down-lists

希望这有帮助!