【问题标题】:FatalErrorException in routes.php line 22: Class 'Painting' not foundroutes.php 第 22 行中的 FatalErrorException:未找到“绘画”类
【发布时间】:2015-07-11 14:19:45
【问题描述】:

我在尝试从视频教程中学习 Laravel 迁移时遇到此错误。导师在 app/models 文件夹中创建了一个名为 Painting.php 的文件。 Painting.php的内容是:

<?php

    class Painting extends Eloquent{

    }
?>

然后在routes.php

Route::get('/', function () {
     $painting = new Painting; //**this thing generates error**
     $painting->title='Do no wrong';
     $painting->save();

    return view('welcome');
});

现在,问题是我应该将 Painting.php 文件放在哪里,因为 Laravel 5.1 中没有 models 文件夹?

【问题讨论】:

  • 听起来您正在关注的视频系列使用 Laravel 4.*,并且您正在使用 Laravel 5.1 应用程序。你会发现 Laravel 从第 4 版到第 5 版发生了很多变化,包括命名空间的引入和目录结构的变化。如果您正在尝试学习该框架,最好找到 Laravel 5 特定的教程。
  • @MartinBean 我认为你是对的 :),你能推荐学习 laravel 5 的最佳地点吗?
  • Laracasts 几乎是学习 Laravel 的实际场所,并且会定期更新 Laravel 和通用编程教程。

标签: php laravel-5 laravel-routing


【解决方案1】:

您需要Painting 类的命名空间:

<?php
namespace App;

class Painting extends Eloquent {}

以及routes.php中的use语句:

<?php
use App\Painting;

此方案假设 Painting.php 位于 app 文件夹中。

【讨论】:

    【解决方案2】:

    所做的以下更改将使您的代码正常工作 ----------------------------------------------- ------------------------------

    Painting.php

    <?php 
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Painting extends Model
    {
    
    }
    

    /routes/web.php

    <?php
    
    use App\Painting;
    
    
    Route::get('/', function () {
    
      $painting = new Painting;
      $painting->title = 'Its Your Wish';
      $painting->artist = 'Working Fine';
      $painting->year = 2017;
      $painting->save();
    
      return view('welcome');
    });
    

    【讨论】:

    • 虽然这可能会回答这个问题,但最好解释一下答案的基本部分,以及 OPs 代码可能存在什么问题。
    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多