Magento2.1.0 오류 표시 관리자에 제품을 저장하는 동안 필수 매개 변수 'theme_dir'이 전달되지 않았습니다


17

이 오류가 발생 했습니다. 관리자에게 제품을 저장하려고 할 때 필수 매개 변수 'theme_dir'이 전달되지 않았습니다 . 상점에 지정된 테마 구성을 확인했습니다. 최근에 2.0.7에서 2.1.0으로 업그레이드했습니다. 또한 테마 디렉토리 registration.php 파일이 있는지 확인했습니다 . 누구나이 문제를 겪었습니다.

답변:


42

이 오류는 데이터베이스에서 여전히 참조되는 템플릿 폴더를 제거 할 때 나타납니다. 이를 해결하는 가장 간단한 방법은 데이터베이스로 이동하여 테이블 'theme'에서에 존재하지 않는 테마 이름을 찾으십시오 app/design/frontend/package.

DELETE 표에서 누락 된 테마에 대한 참조


이것이 정답입니다.
seanbreeden

완벽 함 ..
IKE처럼

이것이 정답입니다.
Daan van den Bergh

내 데이터베이스에 2 개의 레코드가 추가되었습니다. BUt가 여전히 작동하지 않습니다.
HaFiz Umer

10

Vu Anh 의 답변이 효과가 있음을 확인할 수 있습니다 . 삭제 된 테마가 아무데도 사용되지 않지만 제품을 저장할 때 이런 일이 발생 하는 이유 는 다음과 같습니다 .

제품을 저장 한 후 모든 테마에 대해 이미지 캐시 가 재생성됩니다. 각 테마는 고유 한 이미지 크기 형식을 가질 수 있으며 여기에 정의 된 etc/view.xml모든 형식 이 생성됩니다.

그러나 모든 상점에서 구성된 테마를 찾는 대신 Magento는 theme테이블의 모든 테마를 거칩니다 .

테마를 제대로 설치 제거하지 않고 파일을 방금 제거한 경우 고아 항목이 존재하지 않는 경로를 참조하고 설명 된 예외가 발생합니다.


2

동일한 오류가 발생했습니다. 필수 매개 변수 'theme_dir'이 전달되지 않았습니다 . 업데이트가 아닌 처음부터 2.1.0으로 작업합니다. 그리고 하나의 사용자 정의 제품 속성 "style"이 있습니다.

재료에 새 사진을 저장하려고하면 문제가 발생합니다. 이미지가 없으면 제품이 정상적으로 저장되었습니다.

파일에서 예외를 주석 처리하여 수정하십시오.

vendor/magento/framework/view/design/Fallbck/Rule/Simple.php  

그것은 나를 위해 일했다. 그러나 나는 그것이 핵이라고 생각합니다.


이것은 확실히 해킹입니다. 예외를 제거하는 대신 문제를 해결하십시오.
Daan van den Bergh

-2

마지막으로 아래의 예외를 주석 처리하여 문제를 해결했습니다 vendor/magento/framework/View/Design/Fallback/Rule/Simple.php.

if (in_array($placeholder, $this->optionalParams)) {
    return [];
} else {
    return [];
    //throw new \InvalidArgumentException("Required parameter '{$placeholder}' was not passed");
}

4
그러나 이것은 오류를 수정하지 않으며 더 이상 표시하지 않습니다. (Vu Anh의 솔루션이 더 해결책이라고 생각합니다)
BvdVen

3
이 문제를 해결하는 올바른 방법은 아닙니다! Vu Anh의 답변을 확인하십시오.
medina

2
이것은 최선의 해결책이 아닙니다. 하지 마십시오
Ankit Shah
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.