Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.3] compileColumnListing() on null #2123

Closed
Ashiria7 opened this issue Oct 14, 2020 · 6 comments
Closed

[3.3] compileColumnListing() on null #2123

Ashiria7 opened this issue Oct 14, 2020 · 6 comments
Labels

Comments

@Ashiria7
Copy link

  • Laravel-mongodb Version: 3.3.x
  • PHP Version: 7.4.10
  • Database Driver & Version: I don't this means. If this is mongodb/mongodb, its version is 1.7.1
  • laravel/framework version: 5.5.50
  • MongoDB version: 4.4.0
  • OS: MacOS
    (The info above is use composer showphp -V and Mongo --version.This is the first time I report a bug, so if there are something wrong, please tell me how to get the right info. And I will update it immediately after I see it. Thank you very much)

Description:

I create a Article class which extends Jenssegers\Mongodb\Eloquent\Model, but it throwed the error when I use Article::create to insert a new document.

Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function compileColumnListing() on null in file /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php on line 133
Stack trace:
  1. Symfony\Component\Debug\Exception\FatalThrowableError->() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php:133
  2. Illuminate\Database\Schema\Builder->getColumnListing() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:194
  3. Illuminate\Database\Eloquent\Model->isGuardableColumn() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:180
  4. Illuminate\Database\Eloquent\Model->isGuarded() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:157
  5. Illuminate\Database\Eloquent\Model->isFillable() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:229
  6. Illuminate\Database\Eloquent\Model->fill() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:152
  7. Illuminate\Database\Eloquent\Model->__construct() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:290
  8. Illuminate\Database\Eloquent\Model->newInstance() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:1066
  9. Illuminate\Database\Eloquent\Builder->newModelInstance() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:754
 10. Illuminate\Database\Eloquent\Builder->create() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1477
 11. Illuminate\Database\Eloquent\Model->__call() /Users/yukino/Project/PhpProject/Blog/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Eloquent/Model.php:433
 12. Jenssegers\Mongodb\Eloquent\Model->__call() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1489
 13. Illuminate\Database\Eloquent\Model->__callStatic() /Users/yukino/Project/PhpProject/Blog/app/Http/Controllers/ArticleController.php:45
 14. App\Http\Controllers\ArticleController->addBlog() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
 15. call_user_func_array() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
 16. Illuminate\Routing\Controller->callAction() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45
 17. Illuminate\Routing\ControllerDispatcher->dispatch() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Route.php:212
 18. Illuminate\Routing\Route->runController() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Route.php:169
 19. Illuminate\Routing\Route->run() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:658
 20. Illuminate\Routing\Router->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
 21. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
 22. Illuminate\Routing\Middleware\SubstituteBindings->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 23. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 24. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php:57
 25. Illuminate\Routing\Middleware\ThrottleRequests->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 26. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 27. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
 28. Illuminate\Pipeline\Pipeline->then() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:660
 29. Illuminate\Routing\Router->runRouteWithinStack() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:635
 30. Illuminate\Routing\Router->runRoute() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:601
 31. Illuminate\Routing\Router->dispatchToRoute() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:590
 32. Illuminate\Routing\Router->dispatch() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
 33. Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
 34. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/app/Http/Middleware/EnableCrossRequestMiddleware.php:16
 35. App\Http\Middleware\EnableCrossRequestMiddleware->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 36. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 37. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/fideloper/proxy/src/TrustProxies.php:56
 38. Fideloper\Proxy\TrustProxies->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 39. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 40. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
 41. Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 42. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 43. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
 44. Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 45. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 46. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
 47. Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 48. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 49. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:46
 50. Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 51. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 52. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
 53. Illuminate\Pipeline\Pipeline->then() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
 54. Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
 55. Illuminate\Foundation\Http\Kernel->handle() /Users/yukino/Project/PhpProject/Blog/public/index.php:55

And then I used Article::all() to test, I got this.

InvalidArgumentException: Data missing in file /Users/yukino/Project/PhpProject/Blog/vendor/nesbot/carbon/src/Carbon/Carbon.php on line 917
Stack trace:
  1. InvalidArgumentException->() /Users/yukino/Project/PhpProject/Blog/vendor/nesbot/carbon/src/Carbon/Carbon.php:917
  2. Carbon\Carbon->createFromFormat() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php:715
  3. Illuminate\Database\Eloquent\Model->asDateTime() /Users/yukino/Project/PhpProject/Blog/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Eloquent/Model.php:98
  4. Jenssegers\Mongodb\Eloquent\Model->asDateTime() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php:129
  5. Illuminate\Database\Eloquent\Model->addDateAttributesToArray() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php:91
  6. Illuminate\Database\Eloquent\Model->attributesToArray() /Users/yukino/Project/PhpProject/Blog/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Eloquent/Model.php:189
  7. Jenssegers\Mongodb\Eloquent\Model->attributesToArray() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:977
  8. Illuminate\Database\Eloquent\Model->toArray() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1006
  9. Illuminate\Database\Eloquent\Model->jsonSerialize() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Support/Collection.php:1624
 10. Illuminate\Support\Collection->Illuminate\Support\{closure}() [internal]:0
 11. array_map() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Support/Collection.php:1632
 12. Illuminate\Support\Collection->jsonSerialize() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Support/Collection.php:1643
 13. Illuminate\Support\Collection->toJson() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Support/Collection.php:1743
 14. Illuminate\Support\Collection->__toString() /Users/yukino/Project/PhpProject/Blog/app/Http/Controllers/ArticleController.php:60
 15. App\Http\Controllers\ArticleController->getBlogList() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
 16. call_user_func_array() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
 17. Illuminate\Routing\Controller->callAction() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:45
 18. Illuminate\Routing\ControllerDispatcher->dispatch() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Route.php:212
 19. Illuminate\Routing\Route->runController() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Route.php:169
 20. Illuminate\Routing\Route->run() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:658
 21. Illuminate\Routing\Router->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
 22. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
 23. Illuminate\Routing\Middleware\SubstituteBindings->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 24. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 25. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php:57
 26. Illuminate\Routing\Middleware\ThrottleRequests->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 27. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 28. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
 29. Illuminate\Pipeline\Pipeline->then() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:660
 30. Illuminate\Routing\Router->runRouteWithinStack() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:635
 31. Illuminate\Routing\Router->runRoute() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:601
 32. Illuminate\Routing\Router->dispatchToRoute() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php:590
 33. Illuminate\Routing\Router->dispatch() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
 34. Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
 35. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/app/Http/Middleware/EnableCrossRequestMiddleware.php:16
 36. App\Http\Middleware\EnableCrossRequestMiddleware->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 37. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 38. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/fideloper/proxy/src/TrustProxies.php:56
 39. Fideloper\Proxy\TrustProxies->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 40. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 41. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
 42. Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 43. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 44. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
 45. Illuminate\Foundation\Http\Middleware\TransformsRequest->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 46. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 47. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php:27
 48. Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 49. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 50. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:46
 51. Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
 52. Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
 53. Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
 54. Illuminate\Pipeline\Pipeline->then() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
 55. Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
 56. Illuminate\Foundation\Http\Kernel->handle() /Users/yukino/Project/PhpProject/Blog/public/index.php:55

Steps to reproduce

  1. I use composer create-project --prefer-dist laravel/laravel Blog "5.5.*" to create a project
  2. then composer require jenssegers/mongodb 3.3 and composer require tymon/jwt-auth. I config the jwt successfully
  3. Config
# .env
MongoDB_HOST=127.0.0.1
MongoDB_PORT=27017
MongoDB_DATABASE=phpmongo

# database.php
'mongodb' => [
            'driver' => 'mongodb',
            'host' => env('MongoDB_HOST', '127.0.0.1'),
            'port' => env('MongoDB_PORT', 27017),
            'database' => env('MongoDB_DATABASE', 'phpmongo'),
            'username' => env('MongoDB_USERNAME', ''),
            'password' => env('MongoDB_PASSWORD', ''),
            'options' => [
                // here you can pass more settings to the Mongo Driver Manager
                // see https://www.php.net/manual/en/mongodb-driver-manager.construct.php under "Uri Options" for a list of complete parameters that you can use

                'database' => env('DB_AUTHENTICATION_DATABASE', 'admin'), // required with Mongo 3+
            ],
        ],

# app.php
Jenssegers\Mongodb\MongodbServiceProvider::class,
  1. I create the Artcile.php and ArtcileController.php
<?php


namespace App;

use Jenssegers\Mongodb\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\SoftDeletes;

class Article extends Model
{
    protected $collection = 'blog';
    
    protected $connection = 'mongodb';

    use SoftDeletes;
    protected $dates = ['deleted_at'];

    protected $guarded = ['id'];

    protected $attributes = [
        'isdelete' => false,
    ];
}
<?php

namespace App\Http\Controllers;

use App\Article;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Tymon\JWTAuth\Facades\JWTAuth;

class ArticleController extends Controller
{
    public function addBlog(Request $request) {
        $title = $request->get('title');
        $tags[] = $request->get('tags');
        $mainContent = $request->get('mainContent');
        //$user = JWTAuth::parseToken()->authenticate();
        //DB::connection('mongodb')->collection('blog')->insert(['title' => $title])
        Article::create(['title' => $title]);
        return json_encode([
            'msg' => 'success'
        ], JSON_UNESCAPED_UNICODE);
    }

    public function getBlogList() {
        echo Article::where('isdelete', false)->get();
    }
}
  1. create route in api.php
Route::prefix('article')->group(function () {
    Route::post('add', ['as' => 'add', 'uses' => 'ArticleController@addBlog']);
    Route::get('get', ['as' => 'get', 'uses' => 'ArticleController@getBlogList']);
});

Actual behaviour

use postman to test the api, it throw the error

If need other info, I'll do my best to get it to you as soon as I can.

@divine divine changed the title Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function compileColumnListing() on null in file /Users/yukino/Project/PhpProject/Blog/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php on line 133 [3.3] compileColumnListing() on null Oct 14, 2020
@divine
Copy link
Contributor

divine commented Oct 14, 2020

Hello,

I can understand your issue, it's related to Taylor and his team releasing "security" breaking change in older version which isn't event supported.

There is a PR #2082 that fixed it but the problem here is that you're using old version 3.3 which branch doesn't even exist.

We need to:

  • Create 3.3 branch
  • Back-port that PR
  • Release new version

I will probably take care for this soon but no ETA.

Thanks!

@divine divine added the bug label Oct 14, 2020
@divine
Copy link
Contributor

divine commented Oct 14, 2020

@AXiLiYa could you please try composer require jenssegers/mongodb:3.3.x-dev ?

Thanks!

@Ashiria7
Copy link
Author

@divine Of course, I will try it and repoert the usage later.

@Ashiria7
Copy link
Author

@divine I have tried the dev version. At present it seems work well. If there are something wrong in use, I will report it immediately. Thanks for your help!

@divine
Copy link
Contributor

divine commented Oct 15, 2020

@divine I have tried the dev version. At present it seems work well. If there are something wrong in use, I will report it immediately. Thanks for your help!

Let us know if you encounter any issues. We will probably release new version 3.3.2 within a few days.

Thanks!

@divine
Copy link
Contributor

divine commented Oct 15, 2020

We've released new version, you can just composer update and it will install latest version 3.3.2

Thanks!

@divine divine closed this as completed Oct 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants