Php 拉威尔5模型班

Php 拉威尔5模型班,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在app根目录中创建了模型类。因为laravel 5为模型使用app根目录。我没有为模型创建另一个文件夹 class Posts extends Eloquent{} 在routes.php中: Route::get('/', function () { $painting = Posts; $painting->title = 'Do no Wrong'; $painting->artist = 'D. Do right'; $painting->yea

我在
app
根目录中创建了模型类。因为laravel 5为模型使用
app
根目录。我没有为
模型
创建另一个文件夹

class Posts extends Eloquent{}
routes.php
中:

Route::get('/', function () {

  $painting = Posts;
  $painting->title = 'Do no Wrong';
  $painting->artist = 'D. Do right';
  $painting->year = 2014;
  $painting->save();

  return view('welcome');
});
它抛出以下错误:

Class 'Painting' not found

更改
$painting=Posts
$painting=新帖子

此外,我认为你应该创建这样的雄辩模型:

namespace App;
use Illuminate\Database\Eloquent\Model;

class Posts extends Model

您可以使用create方法保存记录,而不是尝试扩展“雄辩”

Posts::create([ 'title' => 'Do no Wrong', 'artist' = 'D. Do right']);
或者,您可以简单地引用Posts类并使用您的代码

Route::get('/', function () {
  $painting = new Posts;
  $painting->title = 'Do no Wrong';
  $painting->artist = 'D. Do right';
  $painting->year = 2014;
  $painting->save();
  return view('welcome');
});

您缺少名称空间和新语句

尝试:

您的模型应如下所示:

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model{

}
<?php 

namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model 
{

}

模型的文件名必须反映类名。因此,对于
Posts
模型,文件应命名为
Posts.php
。假设模型已放置在Laravel安装的
App/
目录中,则模型应如下所示:

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model{

}
<?php 

namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model 
{

}

上述方法应该有效,但我建议您的模型使用非复数名称。因此理想情况下,您的
Posts
模型应该被称为
Post
,而数据库中的表将被称为
Posts
。这是为类和数据库表命名时最常见的错误。

对于这个愚蠢的错误,我深表歉意。现在错误是未找到
类“Painting”
是否将其更改为
$Painting=new Painting错误?在您的示例中,您的模型类被命名为Posts。是的,请查看它的Posts!仍然存在相同的错误
未找到类帖子
。将其更改为
$painting=new App\Posts仍然导致错误?@Shafee是您的模型文件名
Posts.php
?文件名必须反映类名。
class-App\Posts-not-found
:(这意味着您的模型名称空间不正确。请检查我的更新answer@Shafee如果问题仍然存在,您的文件名应该是
posts.php
也可以运行
composer dump autoload