When starting to work with models I got the following error
Class Post not found`.
All I did:
- Created a Model with the command php artisan make:model
- Tried to get all entries from table posts
with echo Post::all()
I used the following code:
router.php
Route::get('/posts', function(){
$results = Post::all();
return $results;
});
Post.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Post extends Model {
protected $table = 'posts';
}
What I tried
- Renaming Class
- Dump-autoload (Laravel 4 Model class not found)
Laravel 5 promotes the use of namespaces for things like Models and Controllers. Your Model is under the
App
namespace, so your code needs to call it like this:As mentioned in the comments you can also
use
or import a namespace in to a file so you don't need to quote the full path, like this:While I'm doing a short primer on namespaces I might as well mention the ability to alias a class as well. Doing this means you can essentially rename your class just in the scope of one file, like this:
More info on importing and aliasing namespaces here: http://php.net/manual/en/language.namespaces.importing.php