Laravel 5列出了htmlentities(),期望参数1为字符串

时间:2015-03-15 09:30:23

标签: php laravel laravel-5

我有以下内容:

\ 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>

有没有办法为视图设置命名空间,所以我不必一直输入完整的命名空间?

1 个答案:

答案 0 :(得分:8)

lists会给出一个数组,而不是{{ }}可以回应的数据。如果要打印数组的内容,您需要做的是循环或implode数组。

使用foreach

@foreach ($list as $item)
    {{ $item }}<br />
@endforeach

implode

{{ 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) !!}