Score:2

"RuntimeException: คุณได้ร้องขอพารามิเตอร์ที่ไม่มีอยู่จริง 'app.root'"

ธง cn

หลังจากที่ฉันล้างแคช ฉันได้รับข้อความนี้

Symfony\Component\DependencyInjection\Exception\RuntimeException: คุณได้ร้องขอพารามิเตอร์ "app.root" ที่ไม่มีอยู่จริง ใน Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() (บรรทัดที่ 37 ของ /var/www/call/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php) Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() (บรรทัด: 60) Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->processValue() (บรรทัด: 30) Symfony\Component\DependencyInjection\Compiler\DefinitionErrorExceptionPass->processValue() (บรรทัด: 39) Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass->process() (บรรทัด: 140) Symfony\Component\DependencyInjection\Compiler\Compiler->compile() (บรรทัด: 789) Symfony\Component\DependencyInjection\ContainerBuilder->คอมไพล์() (บรรทัด: 1335) Drupal\Core\DrupalKernel->compileContainer() (บรรทัด: 916) Drupal\Core\DrupalKernel->initializeContainer() (บรรทัด: 477) Drupal\Core\DrupalKernel->boot() (บรรทัด: 707) Drupal\Core\DrupalKernel->handle() (บรรทัด: 19)

คุณมีความคิดเกี่ยวกับวิธีแก้ปัญหานี้หรือไม่?

cn flag
บรรทัดที่สองระบุว่า `คุณได้ร้องขอพารามิเตอร์ที่ไม่มีอยู่จริง "app.root"` ลองค้นหาฐานรหัสของคุณสำหรับ `app.root` และดูว่าคุณต้องการในส่วนใด
Dragan Petrovic FSD avatar
cn flag
ทั้งหมดเกี่ยวข้องกับคอนโซล drupal
cn flag
คอนโซล Drupal เวอร์ชันใด คุณแน่ใจหรือว่าเวอร์ชั่นนี้เข้ากันได้กับ 8.9.20?
Dragan Petrovic FSD avatar
cn flag
"drupal/คอนโซล": "^1.9",
leymannx avatar
ne flag
ลบ Drupal Console แล้วลองใหม่อีกครั้ง
Dragan Petrovic FSD avatar
cn flag
ปัญหาเดียวกันข้อผิดพลาดเดียวกัน
Score:3
ธง cn

ข้อผิดพลาดนี้เกิดจากรหัสที่ใช้ %app.root% เป็นพารามิเตอร์ใน Drupal 8

ตัวอย่างเช่น:

   cache.backend.apcu:
     คลาส: Drupal\Core\Cache\ApcuBackendFactory
     อาร์กิวเมนต์: ['%app.root%', '%site.path%', '@cache_tags.invalidator.checksum']

นี่คือรหัส Drupal 9 ที่ไม่ทำงานใน Drupal 8

อาร์กิวเมนต์บริการ @app.root ในทางกลับกันไม่ได้ทำให้เกิดข้อผิดพลาดนี้ คุณจะพบได้ใน Drupal Console หรือโค้ด Drupal 8 อื่นๆ เลิกใช้แล้วใน Drupal 9 แต่ยังคงใช้งานได้จนกว่าคุณจะอัปเดตเป็น Drupal 10. จากนั้นจะเป็นข้อผิดพลาดนี้ ข้อผิดพลาด "บริการที่ไม่มีอยู่จริง" หลังจากล้างแคช

ดูบันทึกการเปลี่ยนแปลง https://www.drupal.org/node/3080612.

Score:2
ธง us

เดอะ แอพ. รูท มีการเพิ่มพารามิเตอร์ใน Drupal 9 เพื่อแทนที่ แอพ. รูท บริการ. หากคุณใช้ Drupal 8 ข้อผิดพลาดนั้นอาจเกิดจาก:

  • โมดูลที่ระบุว่าเข้ากันได้กับ Drupal 8 และ Drupal 9 ซึ่งมีรหัสเข้าถึง แอพ. รูท พารามิเตอร์คอนเทนเนอร์เมื่อทำงานบน Drupal 8
  • รหัสอื่นที่พยายามเข้าถึง แอพ. รูท พารามิเตอร์คอนเทนเนอร์เมื่อทำงานบน Drupal 8

สิ่งนี้อาจเกิดขึ้นได้เนื่องจาก:

  • หนึ่งในข้อโต้แย้งสำหรับบริการคือ '%app.root%' (ซึ่งต้องใช้พารามิเตอร์คอนเทนเนอร์) แทน '@app.root' (ซึ่งต้องใช้บริการที่มีอยู่ใน Drupal 8.x)
  • มีรหัสที่ใช้ $container->getParameter('app.root') แทน $container->get('app.root')
  • มีรหัสที่ใช้ตรวจสอบว่าจะใช้ แอพ. รูท คอนเทนเนอร์พารามิเตอร์หรือ แอพ. รูท บริการแต่ใช้งานไม่ได้

หากต้องการทำความเข้าใจว่ารหัสใดทำให้เกิดข้อผิดพลาด การค้นหาก็เพียงพอแล้ว %app.root% หรือ ->getParameter('app.root'). ค้นหา แอพ. รูท ไม่เพียงพอ เนื่องจากจะส่งคืนบรรทัดใดๆ ที่ใช้ the อย่างถูกต้อง แอพ. รูท บริการ.

[Symfony 5] แทนที่บริการสตริง app.root และ site.path ด้วยพารามิเตอร์คอนเทนเนอร์แล้ว ถูกสร้างขึ้นเมื่อวันที่ 13 สิงหาคม 2019 และทำเครื่องหมายเป็นแก้ไขแล้วในวันที่ 23 ธันวาคม 2020 (โปรแกรมแก้ไขนี้เปิดใช้งานบน Drupal 9.x เมื่อวันที่ 5 มีนาคม 2020)
Drupal Console 1.9.4 (เผยแพร่เมื่อวันที่ 11 พฤศจิกายน 2019) ไม่ควรมีรหัสที่เข้าถึง แอพ. รูท พารามิเตอร์คอนเทนเนอร์ เนื่องจาก Drupal core ไม่มีแม้แต่พารามิเตอร์คอนเทนเนอร์เมื่อเปิดตัว Drupal Console 1.9.4

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา