【问题标题】:Laravel Trying to Call Model Class Returns Not FoundLaravel 尝试调用模型类返回未找到
【发布时间】:2014-11-11 04:34:42
【问题描述】:

这是在我的 routes.php 中:

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

$rules = array(
'email' => 'required|email'
);


$validation = Validator::make(Input::all(), $rules);


if ($validation->fails())
{
echo "Not a valid e-mail";
} 
else
{
$subscriber = Subscriber::where('email','=', Input::get('email') );

if ($subscriber) 
{
    echo "Email already exists";
}

else
{
    Subscriber::create(array(
        'email' => Input::get('email')
        ));

在我的模型文件夹中,我定义了以下类:

<?php 

class Subscriber extends Eloquent {
protected $table = 'subscribers';
protected $fillable = array('email');
public $timestamps = false;
}

 ?>

当我尝试将信息插入数据库时​​,它告诉我找不到“订阅者”类。我是否缺少某种连接?

【问题讨论】:

  • 你的型号是什么?
  • 从您的模型名称中删除“s”到 Subscriber.php。文件和类名必须匹配。如果您的班级是订阅者,那么您的模型名称也应该是订阅者。
  • 敏感。刚刚重命名为Subscriber.php,重新运行代码并报告结果。
  • 有时在框架中,如果您的模型名称和模型中的类名称不完全相同,代码会失败。我确定您的型号名称会导致此问题。
  • 它工作了,但它仍然回显“电子邮件已存在”,即使它不在数据库中。

标签: php laravel laravel-routing


【解决方案1】:

确保在创建模型时运行 composer dumpautoload,以便 Laravel 知道新类的存在。

类文件会根据您的 autoload.php 文件自动拉入。该文件是通过 composer 动态生成的。每次创建新的类文件时,您只需运行一次。如果您修改现有的,则不需要。

【讨论】:

    【解决方案2】:

    试试composer dump-autoloadphp artisan dump-autoload。它将重新生成所有类文件和类加载器

    【讨论】:

      【解决方案3】:

      很抱歉复活一个旧线程。您需要确保该文件导入了该类。通过将以下行添加到您的 routes.php 文件的顶部来做到这一点:

      use App\Subscriber;
      

      注意:这假设您生成的类位于 App 文件夹中,这是默认设置。

      【讨论】:

        猜你喜欢
        • 2016-11-26
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 2015-05-20
        • 2016-10-11
        • 1970-01-01
        相关资源
        最近更新 更多