如何修复类 Illuminate\Database\Eloquent\Collection 的对象无法转换为 int

Posted

技术标签:

【中文标题】如何修复类 Illuminate\\Database\\Eloquent\\Collection 的对象无法转换为 int【英文标题】:how to fix Object of class Illuminate\Database\Eloquent\Collection could not be converted to int如何修复类 Illuminate\Database\Eloquent\Collection 的对象无法转换为 int 【发布时间】:2019-05-29 01:12:05 【问题描述】:

当我想创建新帖子时,它返回此错误 Illuminate\Database\Eloquent\Collection 类的对象无法转换为 int(查看:C:\xampp\htdocs\new-project\resources\views\admin \posts\create.blade.php

公共函数 create()

    $categories = Category::all('id','name');

    return view('admin.posts.create')->with('categories', $categories);

我的看法是

<div class="row">
    <div class="col-md-8 col-md-offset-2 panel panel-default">
    <h1>ایجاد پست</h1>

    !! Form::open(['method' => 'POST','action'=>'AdminPostsController@store','files'=>true]) !!
    <div class="form-group">
        !! Form::label('title','عنوان:') !!
        !! Form::text('title',null,['class'=>'form-control']) !!
    </div>
    --<div class="form-group">--
        !! Form::label('category_id','بخش:') !!
        --!! Form::select('category_id',[''=>'زیر مجموعه مورد نظر را انتخاب کنید']+$categories,null,['class'=>'form-control']) !!--
        --</div>--
        !! Form::select('category_id',[''=>'زیر مجموعه مورد نظر را انتخاب کنید']+$categories,null,['class'=>'form-control']) !!
    <div class="form-group">
        !! Form::label('photo_id','عکس:') !!
        !! Form::file('photo_id',['class'=>'form-control']) !!
    </div>
        <div class="form-group">
            !! Form::label('excerpt','خلاصه:') !!
            !! Form::text('excerpt',null,['class'=>'form-control']) !!
        </div>
    <div class="form-group">
        !! Form::label('title','متن:') !!
        !! Form::textarea('body',null,['class'=>'form-control']) !!
    </div>
    <div class="form-group">

        !! Form::submit('ایجاد پست',['class'=>'btn btn-success btn-block']) !!
    </div>
    !! Form::close() !!
        @include('partcial.form-error')
    </div>
</div>



<div>



        <script>
            $(document).ready(function() 
                $('.selection').select2();
            );
        </script>


</div>

【问题讨论】:

$categories 是一个集合(对象数组),您正在尝试将其作为整数添加到表单选择中。如果您想要类别总数,请使用$categories-&gt;count() 我实际上将 pluck('id',name) 用于 $categories 并希望有选择的类别列表 【参考方案1】:

你可以这样做:

<select>
    <option value=0 > زیر مجموعه مورد نظر را انتخاب کنید  </option>
    @foreach($categories as $category)
       
        <option value=$category->id >  $category->name </option>
        
</select>

【讨论】:

以上是关于如何修复类 Illuminate\Database\Eloquent\Collection 的对象无法转换为 int的主要内容,如果未能解决你的问题,请参考以下文章

call_user_func_array() 期望参数 1 是一个有效的回调,类 'Illuminate\Database\MySqlConnection' 没有方法 'query'

无法实例化抽象类Illuminate Database Eloquent Model - Laravel 4

方法 Illuminate\Database\Eloquent\Collection::detach 不存在。 (我该如何解决?)

运行迁移时如何修复外键错误

如何修复 MySql:索引列大小太大(Laravel 迁移)

Illuminate\Database\QueryException 找不到驱动程序