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