Logs::query()->with('company')->get();
$errorsArray = $logs
->map(static function (Logs $log): string {
$logList = implode(', ', [
$log->company->code,
$log->company->full_name,
$log->message,
]);
$log->delete();
return $logList;
});
при запуске psalm (error_level=6) возникает проблема
InvalidTemplateParam - app/Console/Commands/SendAutoCommissionErrorsToManagerCommand.php:26:24 - Extended template param TModel of Illuminate\Database\Eloquent\Collection<int, non-empty-string>&static expects type Illuminate\Database\Eloquent\Model, type non-empty-string given
может кто знает с чем это связано, может кто сталкивался или знает? Спасибо
Стикер
а в vendor psalm должен залазить?
Это у коллекции такой стоит, которая возвращается от Logs::query()->get()
это можно поменять на Logs::all() будет тоже самое)
в этом случае all не сработает Logs::query()->with('company')->get();
ну вроде бы да, чтобы зависимости и типы аргументов простроить
ну уже от логики связи зависит это все еще безсловный запрос с подтягиванием связи на компанию а если связи нет то добавит company = null
where нужен если ты хочешь фильтрацию по конкретным компаниям или по не пустым
а еще без лимитов и пагинации он тебе на каждую запись в бд будет создавать суб запрос от чего очень скоропостижно упадет бд при большой вборке
соглашусь, но проблему с psalm это не решает (
какая с ним проблема - если верно понял это статический анализатор кода - очевидно ему нужен вендор
При анализе кода use App\Models\Logs; ... $logs = Logs::query()->with('company')->get(); $errorsArray = $logs ->map(static function (Logs $log): string { $logList = implode(', ', [ $log->company->code, $log->company->full_name, $log->message, ]); $log->delete(); return $logList; }); psalm возвращает ошибку InvalidTemplateParam - app/Console/Commands/SendAutoCommissionErrorsToManagerCommand.php:26:24 - Extended template param TModel of Illuminate\Database\Eloquent\Collection<int, non-empty-string>&static expects type Illuminate\Database\Eloquent\Model, type non-empty-string given в этом проблема
проблема не в пакете а в твоем коде
static function (Logs $log): string замени на static function (Logs $log): Logs
а мне надо, чтобы он возвращал коллекцию строк
Обсуждают сегодня