คำถามติดแท็ก symfony

Symfony หมายถึงทั้งเฟรมเวิร์ก PHP สำหรับการสร้างเว็บแอปพลิเคชันตลอดจนชุดส่วนประกอบที่สร้างเฟรมเวิร์ก แท็กนี้หมายถึงเวอร์ชันหลักที่รองรับในปัจจุบัน 2.x, 3.x, 4.x และ 5.x หรือคุณสามารถระบุเวอร์ชันที่แน่นอนโดยใช้แท็กที่เกี่ยวข้อง ไม่ควรใช้แท็กนี้สำหรับคำถามเกี่ยวกับ Symfony 1.x โปรดใช้แท็ก Symfony1 แทน

4
การฉีด Symfony 2 EntityManager ในบริการ
ฉันได้สร้างบริการของตัวเองและจำเป็นต้องฉีด EntityManager หลักคำสอน แต่ฉันไม่เห็นว่า__construct()มีการเรียกใช้บริการของฉันและการฉีดไม่ได้ผล นี่คือรหัสและการกำหนดค่า: <?php namespace Test\CommonBundle\Services; use Doctrine\ORM\EntityManager; class UserService { /** * * @var EntityManager */ protected $em; public function __constructor(EntityManager $entityManager) { var_dump($entityManager); exit(); // I've never saw it happen, looks like constructor never called $this->em = $entityManager; } public function getUser($userId){ var_dump($this->em ); // outputs …

1
cascade = {“ remove”} VS orphanRemoval = true VS ondelete = "CASCADE
ฉันพยายามรวบรวมข้อมูลบางอย่างเกี่ยวกับวิธีต่อไปนี้เพื่อลบเอนทิตีลูกโดยอัตโนมัติเมื่อเอนทิตีแม่ถูกลบ ดูเหมือนว่าวิธีที่พบมากที่สุดคือการใช้หนึ่งในบรรดาสามคำอธิบายประกอบ: น้ำตก = { "ลบ"}หรือorphanRemoval = trueหรือondelete = "น้ำตก" ฉันสับสนเล็กน้อยเกี่ยวกับข้อที่สาม: ondelete = "CASCADE"เนื่องจากคำอธิบายในเอกสารอย่างเป็นทางการของหลักคำสอนเกี่ยวกับเรื่องนี้หายากมาก) และฉันจะชอบถ้ามีคนยืนยันข้อมูลต่อไปนี้ที่ฉันรวบรวมและเข้าใจจากการวิจัยของฉันเกี่ยวกับ สุทธิและประสบการณ์ ... มันทำอะไร cascade = {"remove"} ==> เอนทิตีทางด้านผกผันจะถูกลบเมื่อเอนทิตีฝั่งเจ้าของคือ แม้ว่าคุณจะอยู่ในหลายกลุ่มที่มีเอนทิตีด้านการเป็นเจ้าของอื่น - ควรใช้ในการรวบรวม (ดังนั้นในความสัมพันธ์ OneToMany หรือ ManyToMany) - การใช้งานใน ORM orphanRemoval = true ==> เอนทิตีที่อยู่ด้านผกผันจะถูกลบเมื่อเอนทิตีฝั่งเจ้าของคือและไม่ได้เชื่อมต่อกับเอนทิตีฝั่งที่เป็นเจ้าของอื่น ๆ อีกต่อไป (อ้างอิง คำสอน official_doc - การนำไปใช้ใน ORM - สามารถใช้ได้กับ OneToOne, OnetoMany …

3
การเข้าถึงผู้ใช้ที่เข้าสู่ระบบในเทมเพลต
ฉันใช้ FOSuserbundle เพื่อเริ่มการลงทะเบียนผู้ใช้https://github.com/FriendsOfSymfony/FOSUserBundle ฉันได้รับการลงทะเบียน / เข้าสู่ระบบและออก สิ่งที่ฉันต้องการทำตอนนี้คือดึงข้อมูลผู้ใช้ที่ล็อกอินและนำเสนอในทุกหน้าของไซต์ของฉัน เช่น "สวัสดีชื่อผู้ใช้" ในประเภทส่วนหัวของสิ่งต่างๆ ดูเหมือนว่าการฝังตัวควบคุมในแอป / Resources / views / base.html.twig ของฉันเป็นวิธีที่ดีที่สุดในการดำเนินการhttp://symfony.com/doc/current/book/templating.html#embedding-controllers ฉันจึงเขียนคอนโทรลเลอร์เพื่อเข้าถึงข้อมูลโปรไฟล์ผู้ใช้ สิ่งที่ฉันคิดไม่ออกคือวิธีเข้าถึงวิธีการ FOS ในคอนโทรลเลอร์แบบฝังตัวของฉัน ดังนั้นจากAcme / UserBundle / Controller / UserController.php ของฉันฉันต้องการทำสิ่งนี้: public function showAction() { $user = $this->container->get('security.context')->getToken()->getUser(); if (!is_object($user) || !$user instanceof UserInterface) { throw new AccessDeniedException( 'This user does …

9
เข้าถึงค่า POST ในอ็อบเจ็กต์คำขอ Symfony2
ตกลงนี่เป็นคำถามสำหรับมือใหม่ แต่ฉันหาคำตอบไม่ได้เลย ในคอนโทรลเลอร์ใน Symfony2 ฉันต้องการเข้าถึงค่า POST จากฟอร์มของฉัน ในคอนโทรลเลอร์ฉันมี: public function indexAction() { $request = $this->get('request'); if ($request->getMethod() == 'POST') { $form = $this->get('form.factory')->create(new ContactType()); $form->bindRequest($request); if ($form->isValid()) { $name_value = $request->request->get('name'); น่าเสียดายที่$name_valueไม่ได้ส่งคืนอะไรเลย ผมทำอะไรผิดหรือเปล่า? ขอบคุณ!
93 php  symfony  http-post 

12
“ คลาส XXX ไม่ใช่เอนทิตีที่ถูกต้องหรือซุปเปอร์คลาสที่แมป” หลังจากย้ายคลาสในระบบไฟล์
ฉันมีคลาสเอนทิตีใน Aib \ PlatformBundle \ Entity \ User.php ฉันไม่มีปัญหาในการพยายามสร้างคลาสแบบฟอร์มผ่าน php app / console หลักคำสอน: สร้าง: ฟอร์ม AibPlatformBundle: ผู้ใช้ ตอนนี้ฉันได้เปลี่ยนเนมสเปซเป็น Aib \ PlatformBundle \ Entity \ Identity \ User แล้ว แต่เมื่อฉันพยายามสร้างแบบฟอร์มด้วยงานที่ฉันพูดก่อนที่มันจะพูดว่า: "Class Aib \ PlatformBundle \ Entity \ User ไม่ใช่เอนทิตีที่ถูกต้องหรือซูเปอร์คลาสที่แมป" นี่คือเนื้อหาของไฟล์: <?php namespace Aib\PlatformBundle\Entity\Identity; use Doctrine\ORM\Mapping as ORM; /** * Aib\PlatformBundle\Entity\Identity\User …

3
Symfony2 และ Doctrine - ข้อผิดพลาด: PathExpression ไม่ถูกต้อง ต้องเป็น StateFieldPathExpression
ฉันมีเอนทิตีที่มีลักษณะดังนี้: /** * @Gedmo\Tree(type="nested") * @ORM\Table(name="categories") * @ORM\Entity() */ class Category extends BaseCategory { /** * @ORM\OneToMany(targetEntity="Category", mappedBy="parent") */ protected $children; /** * @Gedmo\TreeParent * @ORM\ManyToOne(targetEntity="Category", inversedBy="children") * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="SET NULL") */ protected $parent; } และฉันกำลังพยายามเรียกใช้แบบสอบถามเช่นนี้: $qb = $this->em->createQueryBuilder() ->select('c.parent') ->from('Category', 'c'); $result = $qb->getQuery()->getArrayResult(); อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้: [Semantical Error] ... …

14
รับ url ฐานของเว็บไซต์และส่งต่อไปยัง twig ใน Symfony 2 ทั่วโลก
ฉันกำลังเปลี่ยนจาก CodeIgniter เป็น Symfony 2 ใครช่วยยกตัวอย่างวิธีการ: รับ url ฐาน (url ที่ไม่มีส่วนเฉพาะของเส้นทาง) ส่งตัวแปรนี้ไปยังกลุ่ม twig ทั่วโลกดังนั้นฉันจึงสามารถใช้มันได้ในทุกเทมเพลต
92 url  symfony  base-url 

12
วิธีเข้ารหัสเอนทิตีหลักคำสอนเป็น JSON ในแอปพลิเคชัน Symfony 2.0 AJAX
ฉันกำลังพัฒนาแอพเกมและใช้ Symfony 2.0 ฉันมีคำขอ AJAX จำนวนมากไปยังแบ็กเอนด์ และการตอบสนองเพิ่มเติมคือการแปลงเอนทิตีเป็น JSON ตัวอย่างเช่น: class DefaultController extends Controller { public function launchAction() { $user = $this->getDoctrine() ->getRepository('UserBundle:User') ->find($id); // encode user to json format $userDataAsJson = $this->encodeUserDataToJson($user); return array( 'userDataAsJson' => $userDataAsJson ); } private function encodeUserDataToJson(User $user) { $userData = array( 'id' => $user->getId(), …


2
โครงสร้างไดเร็กทอรี Symfony 3 ใหม่คืออะไร
ฉันเพิ่งสร้างโครงการ Symfony 2.5 ใหม่ด้วยคำสั่งผู้แต่งปกติ: php composer.phar create-project symfony/framework-standard-edition path/ 2.5.0 Terminal ถามฉันว่า: คุณต้องการใช้โครงสร้างไดเร็กทอรี Symfony 3 หรือไม่ โครงสร้างไดเร็กทอรี Symfony 3นี้คืออะไร ไม่เคยเห็นมาก่อนเลยครับ ... ใหม่ตั้งแต่ 2.5? ประโยชน์ของการใช้งานคืออะไร? มีวิธีการจำลองโครงสร้างไดเร็กทอรีนี้หรือไม่?
90 symfony 

5
ฉันจะส่งการตอบสนอง JSON ในคอนโทรลเลอร์ symfony2 ได้อย่างไร
ฉันใช้jQueryเพื่อแก้ไขแบบฟอร์มของฉันซึ่งมีอยู่ในSymfonyตัว ฉันกำลังแสดงแบบฟอร์มในjQueryกล่องโต้ตอบจากนั้นส่งแบบฟอร์ม ข้อมูลถูกป้อนอย่างถูกต้องในฐานข้อมูล แต่ผมไม่ทราบว่าผมต้องส่งบางส่วนกลับไปJSON jQueryอันที่จริงฉันค่อนข้างสับสนกับJSONสิ่งต่างๆ สมมติว่าฉันได้เพิ่มแถวในตารางด้วย `jQuery และเมื่อฉันส่งแบบฟอร์มหลังจากส่งข้อมูลแล้วฉันต้องการส่งข้อมูลแถวเหล่านั้นกลับเพื่อที่ฉันจะได้เพิ่มแถวตารางแบบไดนามิกเพื่อแสดงข้อมูลที่เพิ่ม ฉันสับสนว่าจะเอาข้อมูลนั้นกลับมาได้อย่างไร นี่คือรหัสปัจจุบันของฉัน: $editForm = $this->createForm(new StepsType(), $entity); $request = $this->getRequest(); $editForm->bindRequest($request); if ($editForm->isValid()) { $em->persist($entity); $em->flush(); return $this->render('::success.html.twig'); } นี่เป็นเพียงเทมเพลตที่มีข้อความแสดงความสำเร็จ
90 php  javascript  json  symfony 

4
การส่งผ่านข้อมูลไปยัง buildForm () ใน Symfony 2.8, 3.0 ขึ้นไป
ขณะนี้แอปพลิเคชันของฉันส่งข้อมูลไปยังประเภทฟอร์มของฉันโดยใช้ตัวสร้างตามที่แนะนำในคำตอบนี้ อย่างไรก็ตามคู่มือการอัปเกรด Symfony 2.8แนะนำว่าการส่งอินสแตนซ์ประเภทไปยังcreateFormฟังก์ชันนั้นเลิกใช้แล้ว: การส่งผ่านอินสแตนซ์ชนิดไปยัง Form :: add (), FormBuilder :: add () และเมธอด FormFactory :: create * () ถูกเลิกใช้และจะไม่ได้รับการสนับสนุนอีกต่อไปใน Symfony 3.0 ส่งชื่อคลาสแบบเต็มของชนิดแทน Before: $form = $this->createForm(new MyType()); After: $form = $this->createForm(MyType::class); เมื่อเห็นว่าฉันไม่สามารถส่งผ่านข้อมูลด้วยชื่อคลาสที่มีคุณสมบัติครบถ้วนมีทางเลือกอื่นหรือไม่?
88 php  symfony 

17
EntityManager ถูกปิด
[Doctrine\ORM\ORMException] The EntityManager is closed. หลังจากที่ฉันได้รับข้อยกเว้น DBAL เมื่อแทรกข้อมูล EntityManager จะปิดและฉันไม่สามารถเชื่อมต่อใหม่ได้ ฉันลองแบบนี้ แต่ไม่ได้รับการเชื่อมต่อ $this->em->close(); $this->set('doctrine.orm.entity_manager', null); $this->set('doctrine.orm.default_entity_manager', null); $this->get('doctrine')->resetEntityManager(); $this->em = $this->get('doctrine')->getEntityManager(); ใครมีความคิดที่จะเชื่อมต่อใหม่?

4
ฉันจะแก้ไข“ เพิ่ม myBundle ไปยังข้อยกเว้น symfony2 ของ asseticBundle config” ได้อย่างไร
เมื่อฉันพยายามใช้{% javascript %}แท็กTWIG เพื่อเชื่อมโยงไปยัง.jsไฟล์ของฉันมันจะส่งคืนฉันด้วยข้อยกเว้นต่อไปนี้: An exception has been thrown during the compilation of a template ("You must add CompetitiongameBundle to the assetic.bundle config to use the {% javascripts %} tag in CompetitiongameBundle:game:index.html.twig.") in "CompetitiongameBundle:game:index.html.twig". index.html.twigลักษณะของฉัน: {% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%} <script type="text/javascript" src="{{ asset_url }}" ></script> {% endjavascripts %} Hello {{ name …
84 php  symfony  twig 

1
คุณตรวจสอบได้อย่างไรว่ามีวัตถุอยู่ใน Twig templating engine ใน Symfony2 หรือไม่
ฉันมีอาร์เรย์หลายมิติที่มีวัตถุบางอย่างและบางอย่างไม่มี ฉันได้รับ Method "code" สำหรับ object "stdClass" ไม่มีอยู่ใน ... ? รหัสที่ฉันใช้ในเทมเพลตของฉันคือ: {% for item in items %} <p>{% if item.product.code %}{{ item.product.code }}{% endif %}</p> {% endfor %} ผลิตภัณฑ์บางอย่างไม่มีรหัสนี้และน่าเสียดายที่โครงสร้างข้อมูลนี้ให้มาทางฟีดดังนั้นฉันจึงไม่สามารถเปลี่ยนแปลงได้ เมื่อฉันดูเอกสาร Twig ฉันตีความว่าถ้าไม่มีวัตถุหรือเมธอดอยู่ที่นั่นมันจะคืนค่า null?
84 symfony  twig 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.