Funkcja路径()
tworzyścieżkę做strony na podstawie nazwy trasy。Wartości parametrowścieżki sąprzekazywane jako argumenty Twiga。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
- - - / src /仓库/ CommentRepository.php+ + + b / src /仓库/ CommentRepository.php@@ 3,8 + 3,10 @@名称空间的应用程序\库;使用App \实体\评论;+使用App \实体\会议;使用原则\ \ DoctrineBundle \ Repository \ ServiceEntityRepository捆绑销售;使用原则\ \ ManagerRegistry持久性;+使用原则\ ORM工具\ \分页\ Paginator;/ * * * @extends ServiceEntityRepository <评论> @@ -16年11 + 18日27 @@使用主义\ \ ManagerRegistry持久性;* /类CommentRepository延伸ServiceEntityRepository {+公共常量PAGINATOR_PER_PAGE = 2;+公共函数__construct (ManagerRegistry注册美元){父:__construct(美元注册、评论::类);}+公共职能getCommentPaginator(会议会议美元,int抵消美元):Paginator+ {+ $ = $ this - >查询createQueryBuilder (“c”)+ - >引入(c。会议=:会议')< /span>+ - > setParameter(“会议”,会议美元)+ - > orderBy (c。createdAt, DESC)+ - > setMaxResults (self:: PAGINATOR_PER_PAGE)+ - > setFirstResult(抵消美元)+ - > getQuery ()+;+美元+返回新Paginator(查询);+}+公共函数保存(评论实体美元,美元bool冲洗= false):空白{$ this - > getEntityManager() - >保存(实体);
偿ułatwićtestowanie, ustaliliśmy maksymalnąliczbękomentarzy na stronęna 2 wpisy。
偿商务部zmieniaćstronicowanie w szablonie zamiast obiektu教义收集przekaż做Twiga obiekt教义Paginator:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29
- - - / src /控制器/ ConferenceController.php+ + + b / src /控制器/ ConferenceController.php@@ 6 6 + 6,7 @@使用App \实体\会议;使用App \ Repository \ CommentRepository;使用App \ Repository \ ConferenceRepository;控制器使ob娱乐下载用Symfony \包\ FrameworkBundle \ \ AbstractController;+使用Syob娱乐下载mfony \ HttpFoundation \ \组件请求;组件使用ob娱乐下载Symfony \ \ HttpFoundation \反应;使用Syob娱乐下载mfony \组件\路由\注释\路线;用树枝\环境;@@ -21年11 + 22日16 @@类ConferenceController延伸AbstractController} #(路线(“/会议/ {id}”,名字:“会议”))公共函数显示(环境树枝美元,美元会议会上,CommentRepository CommentRepository美元):反应+公共函数显示(请求美元请求、环境树枝美元,美元会议,会议CommentRepository CommentRepository美元):反应{+ $抵消= max(0, $请求- >查询- > getInt(“抵消”,0));+ $ paginator = $ commentRepository - > getCommentPaginator(会议,抵消美元);+返回新的反应($树枝- >渲染(会议/ show.html。嫩枝”,(“会议”= >发布会上,美元——“评论”= >将其作为findBy $ commentRepository - >([“会议”= > $会议],[' createdAt ' = > ' DESC ']),+“评论”= > paginator美元,+ '以前' = >抵消美元- CommentRepository:: PAGINATOR_PER_PAGE,+ '未来' = > min(计数(paginator美元),抵消美元+ CommentRepository:: PAGINATOR_PER_PAGE),)));}}
Kontroler pobiera parametr抵消
z adresużądania przechowywanego w obiekcie klasy请求($请求- >查询
)jako liczbęcałkowitą(getInt ()
)。Domyślnie笑话为0,jeśli parametr十聂zostałpodany。
Właściwości以前的
我下一个
(我做tyłu przesunięcie做przodu) sąokreślane na podstawie wszystkich informacji pochodzących z paginatora。
Na zakończenie, zaktualizuj szablon dodając odnośniki następnej我poprzedniej strony:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
- - - /模板/会议/ show.html.twig+ + + b /模板/会议/ show.html.twig6 + 6,8 @@ @@ 6日< < h2 >{{会议}}会议/ h2 >{%}如果评论|长度> 0%+ < div >有{{评论|长度}}评论。< / div >+{%评论评论中%}{%如果发表评论。photofilename %}<我mg src="{{ asset('uploads/photos/' ~ comment.photofilename) }}" style="max-width: 200px" />13 @@ @@ -18、6 + 20< p >{{发表评论。文本}}< /p>{%endfor%}++{%如果先前> = 0%}+ < a href = "{{路径(“会议”,{id:会议。id,抵消:以前})之前}}" > < / >+ {% endif %}+{%长度如果下一个<评论| %}+ < a href = "{{路径(“会议”,{id:会议。id,抵消:明年})}}" > < / >+ {% endif %}{%其他%}< div >这个会议还没有发表评论。< / div > {% endif %}
Teraz możesz poruszaćsię阿宝komentarzach咱pomocąodnośnikow“Poprzedni”我“Następny”: