PHP Lumen Call to a member function connection() on null
I'm receiving this error when trying to use an Eloquent Model in Lumen.
Call to a member function connection() on null
Controller func:
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$employees = Employee::orderBy('first_name', 'asc')->get();
dd($employees);
$response['precontent'] = view('admin::employee.search')->render();
$response['content'] = view('admin::employee.index')
->with(['employees' => $employees])
->render();
$response['title'] = 'Employees';
return $response;
}
Model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Employee extends Model
{
protected $table = 'system_core.employees';
protected $fillable = [
'user_id',
'first_name',
'last_name',
'position',
'primary_address',
'secondary_address',
'phone_1',
'phone_2',
'birth_date',
'start_date',
'end_date'
];
}
I'm pretty experienced with Laravel, but just started my first Lumen project for mere API use and I'm not sure why this error is being thrown. Perhaps it's just my connection settings? Would all queries have to be run the following way?:
$results = app('db')->select("SELECT * FROM users");
Thank you!
You should uncomment the Eloquent $app->withEloquent()
call in bootstrap/app.php
.
https://lumen.laravel.com/docs/5.2/database#basic-usage
Update:
Latest version of the docs https://lumen.laravel.com/docs/5.8/database, check section Eloquent ORM
As per 2021 here is the check list to check against to fix this error.
You have to:
- Create the database manually via e.g. PHPMyAdmin;
-
Configure the database connection it in the
.env
file (i.e. setDB_CONNECTION
,DB_DATABASE
,DB_USERNAME
,DB_PASSWORD
); - As per above answers uncomment
$app->withFacades();
,$app->withEloquent();
lines inbootstrap/app.php
; - If you use your Eloquent model within PHPUnit tests you have to boot the Lumen (or Laravel) first by adding the following line to your test class
setUp()
method:parent::setUp()
That should fix it.
Go to bootstrap/app.php
then uncomment
$app->withEloquent();
I think you just uncomment $app->withFacades();
, $app->withEloquent();
lines in bootstrap/app.php;
And check again, it works for me.