1

我正在使用 laravel-mongodb 库(https://github.com/jenssegers/laravel-mongodb

当我想创建新记录时,出现此错误:

strlen() expects parameter 1 to be string, array given

在 project.local/vendor/mongodb/mongodb/src/Collection.php:104

这是模型:Category.php

namespace App\Models;

use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class Category extends Eloquent
{
    protected $collection = [ 'categories' ];
    protected $fillable = [ 'name', 'parentId' ];
}

这是我的商店方法:

public function store(Request $request)
{
    // e1: Category::create([ 'name' => 'T-shirts' ]);
    $n = new Category;
    $n->name = 'T-shirts';
    $n->save();

    return back();
}

错误打印屏幕

4

1 回答 1

1

将您的 $collection 更改为字符串,您已将其设置为数组,这就是您收到该错误的原因

$collection = 'categories';

这是该库 github 自述文件中的一个示例

use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class User extends Eloquent {

    protected $collection = 'users_collection';

}
于 2018-03-21T15:09:05.867 回答