Reputation: 139
I'm using psr-4 to autoload and create a namespace. But I'm getting this error:
Fatal error: Class 'Models\User' not found in /app/routes/users.php on line 7
My architecture
app
---routes
------users.php
---VDB
------Models
---------User.php
This is my composer.json
{
"autoload": {
"psr-4": {
"VDB\\": "app/VDB"
}
},
"require": {
"slim/slim": "~2.0",
"slim/views": "^0.1.3",
"twig/twig": "^1.23",
"illuminate/database": "~5.0"
}
}
My User.php
<?php
namespace VDB\Models;
use Illuminate\Database\Eloquent\Model as Eloquent;
class User extends Eloquent {
}
My Route
<?php
use \Models\User;
$app->get('/users/:username', function($username) use ($app) {
$user = User::where('username', $username)->first();
var_dump($user);
})->name('users');
I already tried composer dump-autoload but it didn't work. Anybody else who can think about something?
Upvotes: 0
Views: 2437
Reputation: 9582
You need to fix your import:
use VDB\Models\User;
If the class still can't be found, try running
$ composer dump-autoload
For reference, see https://getcomposer.org/doc/03-cli.md#dump-autoload.
Upvotes: 1