Reputation: 45
I am working on creating a new application I have a fresh install of Laravel 5.1, I installed the JOSH theme from Themeforest and then installed your mongodb package and the sentry package you created.
There is only one model right now called User and this is what is in it:
<?php namespace App;
use Jenssegers\Mongodb\Model as Eloquent;
class User extends Eloquent {
protected $connection = 'mongodb';
/**
* The database table used by the model.
*
* @var string
*/
// protected $table = 'users';
protected $collection = 'users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password', 'remember_token');
/**
* To allow soft deletes
*/
use SoftDeletes;
protected $dates = ['deleted_at'];
}
When going to my dev url this is what I get.
ErrorException in Builder.php line 211:
Argument 2 passed to Illuminate\Database\Query\Builder::__construct() must be an instance of Illuminate\Database\Query\Grammars\Grammar, null given, called in /var/www/actioncoach.com/subdomains/leads/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php on line 1899 and defined
in Builder.php line 211
at HandleExceptions->handleError('4096', 'Argument 2 passed to Illuminate\Database\Query\Builder::__construct() must be an instance of Illuminate\Database\Query\Grammars\Grammar, null given, called in /var/www/actioncoach.com/subdomains/leads/vendor/laravel/framework/src/Illuminate/Database/Eloqu ent/Model.php on line 1899 and defined', '/var/www/actioncoach.com/subdomains/leads/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php', '211', array('connection' => object(Connection))) in Builder.php line 211
at Builder->__construct(object(Connection), null, object(Processor)) in Model.php line 1899
at Model->newBaseQueryBuilder() in Model.php line 1838
at Model->newQueryWithoutScopes() in Model.php line 1812
at Model->newQuery() in Provider.php line 75
at Provider->findById('2') in Sentry.php line 266
at Sentry->check() in Facade.php line 207
at Facade::__callStatic('check', array()) in AuthController.php line 25
at Sentry::check() in AuthController.php line 25
at AuthController->getSignin()
at call_user_func_array(array(object(AuthController), 'getSignin'), array()) in Controller.php line 256
at Controller->callAction('getSignin', array()) in ControllerDispatcher.php line 164
at ControllerDispatcher->call(object(AuthController), object(Route), 'getSignin') in ControllerDispatcher.php line 112
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 114
at ControllerDispatcher->callWithinStack(object(AuthController), object(Route), object(Request), 'getSignin') in ControllerDispatcher.php line 69
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\AuthController', 'getSignin') in Route.php line 201
at Route->runWithCustomDispatcher(object(Request)) in Route.php line 134
at Route->run(object(Request)) in Router.php line 704
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 706
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 671
at Router->dispatchToRoute(object(Request)) in Router.php line 631
at Router->dispatch(object(Request)) in Kernel.php line 236
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 54
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 122
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87
at Kernel->handle(object(Request)) in index.php line 54
this is part of my composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"illuminate/html": "~5.0",
"jenssegers/mongodb": "^2.1",
"jenssegers/mongodb-sentry": "^1.0",
"cartalyst/sentry": "dev-feature/laravel-5"
},
This is my database file edited as you suggest:
// 'default' => env('DB_CONNECTION', 'mongodb'),
'default' => 'mongodb',
/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
| Here are each of the database connections setup for your application.
| Of course, examples of configuring each database platform that is
| supported by Laravel is shown below to make development simple.
|
|
| All database work in Laravel is done through the PHP PDO facilities
| so make sure you have the driver for your particular database of
| choice installed on your machine before you begin development.
|
*/
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => storage_path('database.sqlite'),
'prefix' => '',
],
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
],
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
'mongodb' => array(
'driver' => 'mongodb',
'host' => 'mydburl',
'database' => 'actionleads',
'username' => 'action',
'password' => 'mysupersecretpassword',
'port' => 31223,
'options' => array(
'db' => 'actionleads' // sets the authentication database required by mongo 3
)
),
],
I have tried to do every suggestion that I could find in the issues and in the Troubleshooting area (https://github.com/jenssegers/laravel-mongodb), so far I have had no luck. Your help would be great.
Upvotes: 1
Views: 3701
Reputation: 131
You need change in file: Illuminate/Foundation/Auth/User.php
To:
<?php
namespace Illuminate\Foundation\Auth;
use Illuminate\Auth\Authenticatable;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Eloquent implements
AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword;
}
It worked for me.
Upvotes: 0
Reputation: 45
To anyone else having this issue please go into your Config folder and edit the file "cartalyst.sentry.php".
change the Sentry configuration model sections:
'groups' => array(
'model' => 'Jenssegers\Mongodb\Sentry\Group',
),
'users' => array(
'model' => 'Jenssegers\Mongodb\Sentry\User',
),
'throttling' => array(
'model' => 'Jenssegers\Mongodb\Sentry\Throttle',
),
Upvotes: 1