我有以下内容:
\ App \ Models \ Finance \ FinanceAccount :: lists('name','id')
在我的一个观点的顶部,但它一直给我错误:
htmlentities() expects parameter 1 to be string, array given (View: mysite\views\modals\add.blade.php)
我做错了什么?
这对于它是一个数组是有意义的,我把它放入一个选择中它现在正在工作:
<div class="form-group">
{!!Form::label('Account')!!}
{!!Form::select('account', \App\Models\Finance\FinanceAccount::getSelectOptions(), 1, ['class' => 'form-control'])!!}
</div>
有没有办法为视图设置命名空间,所以我不必一直输入完整的命名空间?
答案 0 :(得分:8)
lists
会给出一个数组,而不是{{ }}
可以回应的数据。如果要打印数组的内容,您需要做的是循环或implode
数组。
使用foreach
@foreach ($list as $item)
{{ $item }}<br />
@endforeach
{{ implode(', ', $list) }}
使用Form::select
{!! Form::select('foo', $list) !!}
如果您不想在视图中使用您的命名空间(您永远不应该使用),请将send the data从控制器添加到您的视图文件中。
如果您在控制器中有此功能
public function foo() {
$baz = \App\Models\Finance\FinanceAccount::getSelectOptions();
return view('bar', compact('baz'));
}
然后,您的视图文件中会显示$baz
变量。所以你可以这样做:
{!! Form::select('foo', $baz) !!}