Laravel 5.3 — & gt; 5.4 Отражение Исключение

Я обновился с laravel 5.3 до 5.4. Теперь я получаю Класс исключения отражения eloquent.saving: приложение \ имя_модели не существует.
Все остальное выглядит и работает отлично. Я могу запросить его, получить его, отобразить в просмотре 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();

}
}

Пользовательский код не был изменен. Просто обновление (и соответствующие изменения из руководства по обновлению + тинкер был добавлен). Я очистил кеш, очистил скомпилированные представления, сделал оптимизацию, дамп-автозагрузку … все работает.
Это средний шаг к Laravel 5.5. Но то же самое происходит, если я обновляюсь напрямую до 5.5.
Понятия не имею, с чего начать.

Обновление из комментариев:

Создание нового объекта вызывает исключение Carbon. Установка $ timestamps = false в модели избавляет от ошибки Carbon, и я могу создать новую модель и сохранить ее. Однако, если я найду ту же запись и попытаюсь ее сохранить, я снова получу исключение отражения.

Обновить

Если я вернусь к версии 5.3, все сразу начнет работать.

1

Решение

В EventServiceProvider было событие, которое слушало «eloquent.saving» — и было полностью забыто. Произошло изменение в том, как события обрабатываются в 5.4 (через Laracast Talinon)

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector