php - Laravel 8:使用 pluck() 后不能将标量值用作数组
问题描述
我正在尝试将我的模型数组发送Role
到 Blade,如下所示:
public function create()
{
$roles = Role::pluck('name','id');
return view('admin.users.create', compact(['roles']));
}
在 Blade 上,我添加了这个:
<div class="form-group">
{!! Form::label('roles', 'Role:') !!}
{!! Form::text('roles[]', $roles, null, ['multiple' => 'multiple', 'class' => 'form-control']) !!}
</div>
现在我得到这个错误:
ErrorException不能在 create.blade.php 上使用标量值作为数组
但是,当我添加时{{ dd($roles) }}
,我得到这个结果:
Illuminate\Support\Collection {#1155 ▼
#items: array:1 [▼
1 => "Manual User"
]
}
那么这里出了什么问题?我该如何解决这个问题?
我真的很感激你们的任何想法或建议......
提前致谢。
解决方案
问题是您不应该使用该方法获取 2 列值->pluck()
,pluck 用于检索单列值(https://laravel.com/docs/8.x/queries#retrieving-a-list列值)。如果要从模型中检索 2 列,可以尝试使用该->select()
方法:
$roles = Role::select('id', 'name')->get();
推荐阅读
- javascript - Ajax 发送、成功、完成、加载图标
- python - 刮不显示隐藏可见性python
- python - 从一组点绘制拉格朗日多项式 PYTHON
- javascript - reactjs 中的反模式到底是什么?
- mysql - 使用 DBI 和 RMySQL 包连接到本地托管的 MySQL 数据库 (R)
- typescript - 打字稿转换从数据库返回到类
- draw2d-js - Draw2D touch 项目仍在运行
- spring - 我无法在spring mvc中将不同的url映射到同一个控制器
- html - 如何缩放我的 .svg 以填充整个视口?
- javascript - 在特定 div 中移动 div 并在某些断点处再次返回