Score:0

แทนที่การตรวจสอบการเข้าถึง แต่ยังส่งการควบคุมกลับไปยังตัวควบคุมหลักภายใต้เงื่อนไขบางประการหรือไม่

ธง cn

ฉันใช้ตัวควบคุม contrib ที่มีไฟล์ _custom_การเข้าถึง ฟังก์ชันที่ฉันต้องแทนที่

ฉันเพิ่ม RouteSubscriber และชี้การตรวจสอบการเข้าถึงไปยังตัวควบคุมของฉันเอง ตอนนี้ฉันต้องการสิ่งที่ต้องการ:

ถ้า (เงื่อนไข $) {
  ส่งคืน $new_access_decision;
}
คืนค่า $original_controller->accessCheck()

ดังนั้นฉันจึงสามารถพึ่งพาตรรกะดั้งเดิมสำหรับกรณีส่วนใหญ่ต่อไปได้ และแทนที่สำหรับกรณีย่อยเล็กน้อยเท่านั้น

ฉันไม่รู้วิธีใส่คอนโทรลเลอร์ดั้งเดิมลงในของฉัน และถ้าฉันพยายามเพิ่มเป็นพารามิเตอร์ในบริการ RouteSubscriber ฉันจะได้รับ

มีการพึ่งพาบริการที่ไม่มีอยู่ [ตัวควบคุมดั้งเดิม]

ซึ่งฉันหมายความว่าตัวควบคุมไม่ใช่บริการ

Score:1
ธง cn

ฉีด class_resolver เป็นบริการปกติแล้วโทร

$this->class_resolver->getInstanceFromDefinition('\Drupal\example\ExampleController');
4uk4 avatar
cn flag
โดยปกติคุณไม่จำเป็นต้องใช้สองอินสแตนซ์หากมีวิธี OOP ที่ขยายคลาสและสร้างอินสแตนซ์เฉพาะคลาสใหม่ซึ่งสามารถเรียกเมธอดพาเรนต์ได้หากจำเป็น คุณต้องการเพียงสองอินสแตนซ์หากมีสถานะต่างกัน
cn flag
ใช่ฉันเดาว่าเคสขอบค่อนข้างแปลก ฉันคิดว่าฉันสามารถแก้ปัญหานี้ได้โดยการขยายตัวควบคุม primart แต่พวกมันค่อนข้างแตกต่างจากตัวอื่น และมันเป็นโค้ดที่สืบทอดมาซึ่งฉันไม่ค่อยกระตือรือร้นในการเขียนใหม่ทั้งหมด

โพสต์คำตอบ

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