Laravel返回htmlentities(),期望参数1为字符串,给定对象


Laravel returns htmlentities() expects parameter 1 to be string, object given

我有以下Laravel 5.1控制器功能

public function editare($prod_id) {
    $categorii=DB::table('categorii_produse')
        ->select('cat_id')
        ->get();
    $categorie_selectata=DB::table('produse')
        ->leftjoin('categorii_produse','prod_cat_id','=','cat_id')
        ->where('prod_id','=',$prod_id)
        ->select('prod_cat_id')
        ->get();
    $articole=DB::table('produse')
        ->leftjoin('imagini','prod_id','=','img_prod_id')
        ->where('prod_id','=',$prod_id)
        ->get();

    return view ('pagini.editare',compact('categorii','categorie_selectata','articole'));

和下面的行在视图中有问题

{!! Form::select('categorii',$categorii, null, ['class' => 'form-control']) !!}

视图返回以下错误

htmlentities() expects parameter 1 to be string, object given

作为第二个参数,您需要传递格式为value => displayed option的数组(在您的情况下,我看到您只使用cat_id作为值和显示选项),因此不使用:

{!! Form::select('categorii',$categorii, null, ['class' => 'form-control']) !!}

您应该使用:

{!! Form::select('categorii',collect($categorii)->lists('cat_id')->all(), null, ['class' => 'form-control']) !!}