首页 文章

Laravel 5.3 - > 5.4反射例外

提问于
浏览
1

我从laravel 5.3升级到5.4 . 现在我得到 Reflection Exception Class eloquent.saving: App\model_name does not exist . 其他一切看起来都很好 . 我可以查询,检索它,在Vue浏览中显示它 - 只是保存部分正在抛出拟合 . 它发生在每个型号及其各自的控制器上 .

最简单模型的示例:

模型

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

class Bank extends Model
{
  protected $guarded = ['id'];
}

调节器

namespace App\Http\Controllers;

use App;
use App\Bank;
use Illuminate\Http\Request;

class TestController extends Controller
{

  public function test1(Request $request) {

    /** @var \App\Bank $bank */
    // get record
    $bank = Bank::first();
    // change data
    $bank->bic = "xxx";
    // dump it - looks ok
    dump($bank);
    // this throws reflection error
    $bank->save();

  }
}

没有自定义代码已更改 . 只是升级(添加了升级指南修补程序的适用更改) . 我已经清除了缓存,清除了编译视图,完成了优化,dump-autoload ...工作 . 这是laravel 5.5的中间步骤 . 但如果我直接升级到5.5,也会发生同样的情况不知道从哪里开始寻找 .

来自评论的更新:

创建一个新对象会引发Carbon异常 . 在模型中设置$ timestamps = false可以消除Carbon错误,我可以创建新模型并保存它 . 但是,如果我找到相同的记录并尝试保存它,我会再次获得反射异常 .

更新

如果我降级回5.3,一切都会立即开始工作 .

1 回答

  • 1

    EventServiceProvider中有一个事件听了“eloquent.saving” - 完全被遗忘了 . 5.4中的事件处理方式发生了变化(通过laracast Talinon)

相关问题