【问题标题】:laravel 'class not found' error on productionlaravel 'class not found' 生产错误
【发布时间】:2015-02-12 00:52:25
【问题描述】:

这里有点奇怪。

我有人物和动作。 Person 可以有多个 Action,而每个 Action 只属于一个 Person。我正在使用 Chumper 的数据表来显示人员列表,包括他们的操作计数。

自从迁移到生产(伪造)服务器后,我得到了

Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_ERROR)
Class 'action' not found

调用数据表时。显示的错误

/­vendor/­laravel/­framework/­src/­Illuminate/­Database/­Eloquent/­Model.php:721

public function hasOne($related, $foreignKey = null, $localKey = null)
{
    $foreignKey = $foreignKey ?: $this->getForeignKey();
    $instance = new $related;
    $localKey = $localKey ?: $this->getKeyName();

表明我的 hasMany 关系有问题:

# /models/Person.php
class Person extends Eloquent {

    public function actions()
    {
        return $this->hasMany('Action');
    }

# /models/Action.php
class Action extends Eloquent { 

    public function person()
    {
        return $this->belongsTo('Person', 'person_id');
    }

不过,我认为这些都很好,因为它们都可以在本地运行。数据表在其他地方也可以正常工作,调用其他项目及其相关操作没有任何问题。

我在生产服务器上尝试了 composer dump-autoload 和 artisan dump-autoload ,但无济于事。 forge 上的部署脚本如下:

git pull origin master
composer install
php artisan migrate --env=production

我无法判断这是配置问题、数据库问题、代码问题还是其他问题。我已经回答了许多类似的问题,但没有任何问题。非常感谢任何帮助。

【问题讨论】:

  • 你是在 windows 上开发吗?
  • 不,OSX。如果有帮助,我的模型文件都以大写字母开头。
  • 嗯...你的代码中有action吗? (进行区分大小写的搜索)
  • 我在我的ActionsController.php 和一些视图文件中使用$action 作为变量,如果这就是你的意思吗? Route::model('action', 'Actions'); 也出现在我的路由文件中。
  • 那些看起来不会产生错误...

标签: php laravel laravel-4 datatables laravel-forge


【解决方案1】:

谁可能有同样的问题,三重检查你的模型的外壳!我错了,这就是为什么本地在 mac 上工作但在服务器上不工作的原因

【讨论】:

    【解决方案2】:

    所以我想我自己搞砸了这个。

    我一直很懒惰,使用旧的“计数”方法将 function datatablePersons() 留在 PersonsController.php 中,依赖于长期失效的关系(导致 n+1,因此必须分箱),因此它在一个actions 类,无论何时调用该关系。

    其他控制器中的数据表函数(使用更简洁的“计数”方法)工作正常,因此我刚刚重写了 datatablePersons() 以使用相同的方法。

    我还没有完全正确地查询(至少是雄辩的) - 在这里看到这个问题:mysql join ON and AND to laravel eloquent - 但class not found 错误肯定已经消失了。

    我(大量)猜测本地机器上的类映射没有被刷新,因为删除了任何被删除的东西,而生产机器每次推送都会重建,因此存在差异......?

    无论如何,这不再是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      • 2023-04-03
      • 2013-10-05
      相关资源
      最近更新 更多