我有一个完全在localhost上运行的Laravel 5项目。我将项目上传到了webhost,突然间我在一个简单的类上遇到错误。
这是错误:
FatalThrowableError in HomeController.php line 20:
Fatal error: Class 'App\Blogpost' not found
Homecontroller代码是这样的:
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Blogpost;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$blogposts = Blogpost::latest()->take(6)->get();
return view('pages/start', compact('blogposts'));
}
}
这段代码很基本,在localhost上运行正常,所以我假设问题出在其他地方,但我不知道从哪里开始搜索?
出于测试目的,我将Homecontroller中的所有代码放在注释中,而不是我只是在其他地方出错,所以问题就在其他地方。
我的localhost在MAMP上使用带有PHP 7.0.0的Apache服务器运行。 托管在Linux + Apache + PHP 7.0.5上运行。
我已将其他laravel项目上传到具有相同配置的同一服务器,没有任何问题。
这是有用的链接:[http://dev.mayan-co.com][1]
显示Blogpost类本身的额外代码(仍然非常确定问题不在该类中)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\SluggableInterface;
use Cviebrock\EloquentSluggable\SluggableTrait;
class BlogPost extends Model implements SluggableInterface
{
protected $table = "blogposts";
use SluggableTrait;
protected $sluggable = [
'build_from' => 'title',
'save_to' => 'slug',
];
protected $fillable = [
'title',
'featured_image',
'video_key',
'body',
'summary'
];
public function tags()
{
return $this->belongsToMany('App\Tag', "blog_tag", "blogpost_id")->withTimestamps();
}
public function delete()
{
\File::delete([
$this->featured_image,
]);
parent::delete();
}
}
答案 0 :(得分:2)
您的文件名为BlogPost.php
,但您的类已声明并实例化为Blogpost
。名称和类名在名称和大小写方面都必须相同。
OSX与大多数Linux版本一样不区分大小写因此为什么在本地版本上没有发生这种情况。