我正在创建一个cms类型的应用程序。为此,在插入用户的角色即管理员,订阅者和作者时,我使用pluck()方法从角色表中检索数据并在选择下拉列表中显示角色作为数组,但问题是它无法正常工作[htmlspecialchars( )期望参数1是字符串,给定数组]请帮助我如何解决这个问题,或者有没有其他方法可以用来代替采摘?。
AdminPostsController:
public function create()
{
$roles = Role::pluck('name', 'id')->all();
return view('admin.users.create', compact('roles'));
}
创建页面(create.blade.php):
<div class = "form-group">
{!! Form::label('role_id', 'Role:') !!}
{!! Form::text('role_id', array(''=>'Choose Your Role')+$roles, null,
['class'=>'form-control']) !!}
</div>
请帮忙!
答案 0 :(得分:7)
您的问题不在pluck
方法上,而是在您的刀片视图上:
<div class = "form-group">
{!! Form::label('role_id', 'Role:') !!}
{!! Form::text('role_id', array(''=>'Choose Your Role')+$roles, null,
['class'=>'form-control']) !!}
</div>
Form::text
方法需要一个字符串作为第二个参数,你给了一个数组。
如果您想要选择,请使用Form::select
。
答案 1 :(得分:1)
AdminController应如下所示:
public function create()
{
$roles = Role::pluck('name', 'id')->toArray();
return view('admin.users.create', compact('roles'));
}
并使用下面的刀片形式:
{!! Form::select('role_id', [null => 'Choose your role'] + $roles, null,
['class' => 'form-control']) !!}
您也可以通过将某些内容传递到Form :: select()的第3个位置来使用默认值。例如
{!! Form::select('INPUT_NAME', ['your' => 'array', 'with' => 'options], DEFAULT_VALUE, ['class' => 'example class',]]) !!}