我有一個Course
實體至極有許多CourseSessions
。 CourseSession
可以活性或傳遞。Symfony2的形式集合限制
我怎麼能只渲染活躍CourseSessions
並與通過CourseSessions
的Course
編輯頁面上保存的關係?
現在我渲染所有CourseSessions
但是當CourseSession
數超過50個時,頁面呈現速度很慢。
任何人都可以幫助我嗎? 謝謝。
更新1:
class CourseType {
$builder->add('sessions', 'collection', array(
'label' => false,
'type' => new CourseSessionType(), // <- here I want to pass only active Sessions
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__name__'
))
}
class CourseSessionType {
// multiple CourseSession fields
}
// Course edit page
<div id="courseSessions" data-prototype="{{macros.course_session_prototype(form.sessions, 'Remove Session', true)|escape }}">
{% do form.sessions.setRendered %}
{% for widget in form.sessions.children %}
{{ macros.course_session_prototype(widget, 'Remove Session', false) }}
{% endfor %}
</div>
更新2:
我怎麼能映射我'type' => new CourseSessionType()
與getActiveCourseSessions()
和setActiveCourseSessions()
?我認爲這會對我有幫助。
Symfony的不具有實體的任何默認的「編輯」頁面。你在使用索納塔嗎?如果是這樣,你仍然需要提供更多關於你正在使用的小部件的信息,理想情況下還需要提供相關的代碼部分。我會猜,你需要做的是創建自定義getActiveCourseSessions和setActiveCourseSessions功能,然後設置已奏鳴曲編輯形式呈現,而不是「courseSessions」 activeCourseSessions「。 – Omn
「Symfony沒有任何實體的默認'編輯'頁面。」我的意思是課程更新頁面 - 一個來自CRUD操作。我確實使用了symfony。 –
您需要提供更多信息。這個問題沒有足夠的信息來幫助。你在談論使用命令「generate:doctrine:crud」生成的代碼嗎?也許這會幫助你? http://stackoverflow.com/questions/12497133/directly-access-a-form-fields-value-when-overriding-widget-in-a-twig-template – Omn