Laravel returns 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']) !!}

查看returns出现以下错误

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']) !!}