类不在主机上加载但在本地主机上工作 - Laravel 5

时间:2016-05-30 08:10:05

标签: php laravel laravel-5

我有一个完全在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();
    }
}

证明Blogpost.php存在于正确的目录中。 enter image description here

1 个答案:

答案 0 :(得分:2)

您的文件名为BlogPost.php,但您的类已声明并实例化为Blogpost。名称和类名在名称和大小写方面都必须相同。

OSX与大多数Linux版本一样不区分大小写因此为什么在本地版本上没有发生这种情况。