我正在使用 laravel 向 mongoDb 添加資料:
在模型中: Banner.php
<?php
namespace App\Models\Mongo;
use Illuminate\Database\Eloquent\Model;
class Banner extends Model
{
protected $connection = 'mongodb';
protected $collection = 'banner';
protected $guarded = ['_id'];
public $timestamps = false;
protected $fillable = [
'_id',
'url',
'width',
'height',
];
}
在控制器中: BannerController.php
use App\Models\Mongo\Banner;
use MongoDB\BSON\ObjectId;
public function store(Request $request)
{
Banner::create([
'_id' => new ObjectId(),
'url' => 'test.jpg',
'width' => 960,
'height'=> 300
]);
return response()->json([
'status' => 'success'
], 200);
}
錯誤 : message: "Call to a member function prepare() on null"
或者我嘗試了另一種方式,而不是使用模型類保存我使用 Repositories BannerRepository.php::
<?php
namespace App\Repositories\MongoDB;
use App\Models\Mongo\Banner;
use MongoDB\BSON\ObjectId;
class BannerRepository extends MongoDBBaseRepository
{
public function model()
{
return Banner::class;
}
}
在控制器中:
use App\Models\Mongo\Banner;
use App\Repositories\MongoDB\BannerRepository;
use MongoDB\BSON\ObjectId;
/**
* @var BannerRepository
*/
protected $bannerRepository;
public function __construct(
BannerRepository $bannerRepository
) {
$this->bannerRepository = $bannerRepository;
}
public function store(Request $request)
{
$this->bannerRepository->getModel()->create([
'_id' => new ObjectId(),
'url' => 'test.jpg',
'width' => 960,
'height'=> 300
]);
return response()->json([
'status' => 'success'
], 200);
}
錯誤 : Return value of App\\Repositories\\MongoDBBaseRepository::getModel() must be an instance of Jenssegers\\Mongodb\\Eloquent\\Model, instance of App\\Models\\Mongo\\Banner returned"
我嘗試了兩種方法。和兩個錯誤。不知道我哪里做錯了。請給我你的意見。我是laravel的新手,所以有點困難。謝謝
uj5u.com熱心網友回復:
您的模型正在擴展 Illuminate\Database\Eloquent\Model;
嘗試使用 Mongo Jenssegers\Mongodb\Eloquent\Model;
像這樣的東西:
<?php
namespace App\Models\Mongo;
use Jenssegers\Mongodb\Eloquent\Model;
class Banner extends Model
{
}
您可以在此處找到更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/372548.html
上一篇:無法在VisualStudioforMac上為CocoaApp(Xamarin.Forms)構建安裝程式
下一篇:Laravel我無法進入控制器
