Я использую библиотеку 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();
}
Измените $ collection на строку, вы установили ее как массив, поэтому вы получаете эту ошибку
$collection = 'categories';
Вот пример из этой библиотеки github Readme
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class User extends Eloquent {
protected $collection = 'users_collection';
}
Других решений пока нет …