首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel : count():参数必须是实现Countable的数组或对象

laravel : count():参数必须是实现Countable的数组或对象
EN

Stack Overflow用户
提问于 2018-12-09 05:25:35
回答 4查看 9.4K关注 0票数 4

我使用的是Laravel 5.3,我的php版本是7.1

当我调用SoftDeletes类时,我得到了这个错误

Builder.php行1231中的ErrorException : count():参数必须是实现Countable的数组或对象

这是我的模型

代码语言:javascript
复制
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;


class Post extends Model
{

    use SoftDeletes;

    protected $dates = ['deleted_at'];

    protected $fillable = [

        'title','content','image','category_id','slug'
    ];



    public function category(){


        return $this->belongsTo('App\Category');
    }
}

它就是我的控制器

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Post;

use App\Category;

use Session;

class PostsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {



        return view('admin.posts.index')->with('posts',Post::all());

    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $category = Category::all();

        if($category->count() == 0){

            Session::flash('info' , 'You must create at least 1 category to add a new post');

            return redirect()->back();
        }

        return view('admin.posts.post')->with('categories',$category);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

        $this->validate($request,[

            'title'         => 'required|max:255',
            'image'         => 'required|image',
            'content'       => 'required',
            'category_id'   => 'required'
        ]);


        $image = $request->image;

        $image_new_name = time().$image->getClientOriginalName();

        $image->move('/uploads/posts' , $image_new_name);



        $post= Post::create([

            'title'          => $request->title,
            'image'          => '/uploads/posts/' . $image_new_name,
            'content'        => $request->content,
            'category_id'    => $request->category_id,
            'slug'           => str_slug($request->title)
        ]);

        Session::flash('success' , 'You created a new post');

        return redirect()->back();



    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

当我删除count()函数时,也会得到同样的错误

如何解决此错误?

EN

回答 4

Stack Overflow用户

发布于 2019-04-27 18:31:56

Laravel 5.3和我的PHP7.1版本彼此不兼容Refer to this issue in the github

要解决这个错误,您可以做两件事

票数 4
EN

Stack Overflow用户

发布于 2019-02-18 21:55:06

我在C:\laragon\www\mystore\vendor\laravel\framework\src\Illuminate\Database\Eloquent中更改了1231行

代码语言:javascript
复制
$originalWhereCount = !empty($query->wheres) ? count($query->wheres) : 0;
票数 0
EN

Stack Overflow用户

发布于 2020-07-26 22:28:31

我在laravel find()方法中遇到了同样的问题,它返回的是对象而不是数组。因此,count()方法将不起作用。尝试:Stackoverflow解决方案或

代码语言:javascript
复制
Post::all()->toArray();

将返回一个使用count()方法的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53687128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档