【问题标题】:Fatal error uncaught error class not found未找到致命错误未捕获的错误类
【发布时间】:2018-09-06 14:52:50
【问题描述】:

我目前在迁移到在线提供商时遇到此错误

致命错误:未捕获的错误:在 /home/index.php:4 中找不到类 'app\Http\model\MoviePresenter' 堆栈跟踪:在第 4 行的 /home/index.php 中抛出 #0 {main}

此代码在本地运行良好,只是决定停止在主机上运行。

下面是部分代码

<?php ini_set('display_errors', 1);

$moviePresenter = new \app\Http\model\MoviePresenter; $movieGenreList = $moviePresenter->getMovieGenreList();

function displayMovieList($movieList, $moviePresenter)
{
      $html = '<div class="movie-list row">';   
      $currentURL = \Request::root();  
      foreach ($movieList as $movie) {
          $genreList = $movie->getGenres();
          $movieGenreList = $moviePresenter->getMovieGenreList();

          foreach ($genreList as $genre){
             foreach ($movieGenreList['genres'] as $movieGenre){
                 if($genre->getID() == $movieGenre['id']){
                 $genre->setName($movieGenre['name']);
             }
          }
      }

     $movieID = $movie->getID();   
     $image = $movie->getPosterImage();  
     $poster = '<img class="img-responsive" src="//image.tmdb.org/t/p/w154/'. $image .'" width="195" height="360">';


     $html .= '<div class="col-xl-3 col-lg-4 col-md-6 col-sm-12 d-flex align-items-center flex-column justify-content-center h-100"><a
     href="' . $currentURL . '/movie/' . $movieID . '">';

    $html .= $poster;
    $html .= '</a><div class="moviedetails row">';

    foreach($genreList as $genre){
      $html .= '<a href="'. $currentURL . '/discovery/genre/'. $genre->getID() . '" class="genres">';
      $html .= $genre->getName() . '</a>';
    }

    $html .= '</div></div>';   
    $html .= '</div>';

    return $html; 
}
?>

它看起来像是在视图(snipit 的来源)中查找类而不是文件路径。

谁能告诉我为什么它在搜索本地类而不是视图?

【问题讨论】:

  • 请解决您的问题

标签: php laravel


【解决方案1】:

错误Class 'app\Http\model\MoviePresenter' not found,当你使用新类MoviePresenter,但你还没有导入类MoviePresenter

因此,您应该在文件index.php 中导入类MoviePresenter,尝试在文件开头使用require(),如下所示:

require('app\Http\model\MoviePresenter');
//PUT YOUR OTHER CODE BELOW THIS

【讨论】:

    【解决方案2】:

    我不知道你使用的是哪个 Laravel 版本。您应该提供有关您的问题的更多详细信息。

    尝试像这样在文件开头导入 MoviePresenter 模型

    use App\MoviePresenter;
    

    或者根据你的模型文件目录这样

    use App\Http\model\MoviePresenter;
    

    【讨论】:

      【解决方案3】:

      这可能是因为区分大小写的问题。我敢打赌你的新主机是 Linux,所以你的命名空间应该是:

      \App\Http\model\MoviePresenter

      或\App\Http\Model\MoviePresenter

      而不是 app\Http\model\MoviePresenter

      laravel 应用命名空间使用大写 A。

      【讨论】:

      • 谢谢。我试过了,但它仍然有同样的错误。
      猜你喜欢
      • 2021-07-10
      • 1970-01-01
      • 2018-01-01
      • 1970-01-01
      • 2023-03-25
      • 2020-09-03
      • 1970-01-01
      • 2018-05-11
      • 2020-11-09
      相关资源
      最近更新 更多