Skip to content

Call to undefined method Model::embedsOne() and Model::embedsMany() #2035

Closed
@mean-cj

Description

@mean-cj
  • "laravel/framework": "^7.0"
  • Laravel-mongodb Version: dev-develop (last 19-05-2020)
  • PHP Version: 7.4.4
  • MongoDB database driver : 1.6.16 (stable)
  • MongoDB driver for PHP : 1.7.4

Description:

{message: "Call to undefined method Item::embedsMany()",…}
exception: "BadMethodCallException"
file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php"
line: 50

Steps to reproduce

1. Create model of Item.php

<?php
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Jenssegers\Mongodb\Relations\EmbedsMany;

class Item extends Eloquent
{
   protected $collection = 'item';
   protected static $unguarded = true;

   public function addons(): EmbedsMany
   {
      return $this->embedsMany(Addon:class);
   }
}

2. Create model of Addon.php

<?php
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class Addon extends Eloquent
{
   protected $collection = 'addon';
}

3. Test 1

$item = Item::create(['name'=>"Book"]);
$new_addon = new Addon([ 'name'=>'Extra', 'price'=> 100 ]);
$item->addon()->save($new_addon);

3. Test 2 , same problem

$item = Item::create(['name'=>"Book"]);
dd($item->addon);

Error results

{message: "Call to undefined method Item::embedsMany()",…}
exception: "BadMethodCallException"
file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php"
line: 50

Logs: {message: "Call to undefined method App\Models\Item::embedsMany()",…} exception: "BadMethodCallException" file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php" line: 50 message: "Call to undefined method App\Models\Item::embedsMany()" trace: [{file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php",…},…] 0: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php",…} 1: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php", line: 1728,…} 2: {file: "/var/www/html/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Eloquent/Model.php", line: 476,…} 3: {file: "/var/www/html/app/Models/Item.php", line: 66, function: "__call",…} 4: {file: "/var/www/html/app/Http/Controllers/ItemController.php", line: 351, function: "addons",…} 5: {function: "edit_submit", class: "App\Http\Controllers\ItemController", type: "->"} 6: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Controller.php", line: 54,…} 7: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",…} 8: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php", line: 239,…} 9: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php", line: 196,…} 10: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php", line: 685,…} 11: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 128,…} 12: {file: "/var/www/html/app/Http/Middleware/API/MerchantRole.php", line: 55,…} 13: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 14: {,…} 15: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 16: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php",…} 17: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 18: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 103,…} 19: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php", line: 687,…} 20: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php", line: 662,…} 21: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php", line: 628,…} 22: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php", line: 617,…} 23: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", line: 165,…} 24: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 128,…} 25: {file: "/var/www/html/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php", line: 58,…} 26: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 27: {,…} 28: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 29: {,…} 30: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 31: {,…} 32: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 33: {,…} 34: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 35: {file: "/var/www/html/vendor/fruitcake/laravel-cors/src/HandleCors.php", line: 58,…} 36: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 37: {file: "/var/www/html/vendor/fideloper/proxy/src/TrustProxies.php", line: 57,…} 38: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 167,…} 39: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", line: 103,…} 40: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", line: 140,…} 41: {file: "/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", line: 109,…} 42: {file: "/var/www/html/public/index.php", line: 103, function: "handle",…}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions