This is a repeat question - eg: Laravel 4 migrations - class not found
However, I've tried every solution (from every forum I could find) and cannot figure this out.
I created a Laravel 4 project on my local machine - added some classes, controllers, views, etc - the project works great.
I then copy this fresh repo onto my DO server - install dependencies with composer, etc. The project looks good, except for one page that shouts an error:
Class 'company' not found
Symfony\Component\Debug\Exception\FatalErrorException
…/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php593
You can view this page here.
I've updated composer. I've tried "dump-autoload". I changed the 'minimum-stability' to 'stable' in the composer.json file (yes, this was a proposed solution on a forum post).
Other solutions have to do with adding "psr-4" or "psr-0" into the composer.json file depending on the composer version - tried both.
What boggles my mind about this the most, is that this page works great on my local machine, but not on the DO server....If you guys need more info about something to fish this answer out, just let me know.
Any help is appreciated :)
this is what my composer.json file looks like:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.0.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
Most probably (I'm pretty sure) your local environment is Windows
and live server is Linux
. So if the class company
class file is used as company.php
on local server then it's same Company.php
on local server but as Linux
follows case sensitive rules so it reads the company.php
and Company.php
as two different files.
So, if you have file name used Company.php
then make sure you are refering the class using same case as Company
not company
(lower), in windows c
and C
doesn't matter but on Linux/Unix
it does because of it's case sensitive nature.
I have faced the same problem when I added/created a new model class called Follower_Group
in a project I worked on, and after some search I came to a solution that worked pretty well in my case. Try this:
composer dump-autoload
in your local machine's terminal. /bootstrap
and /vendor/composer
from your local machine to your server.In case you are using git, and you want Git to be case sensitive, adjust its configs:
Just use the following command for the current repository:
git config core.ignorecase false
For global setting:
git config --global core.ignorecase false
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With