@@ -532,6 +532,201 @@ print_r($dataProvider->getModels());
532532)*/
533533
534534
535+ // Используем упрощенный синтаксис построения запросов
536+ // Получим все адреса с городом, местами и комментариями, оценка которых не ниже трех
537+ // Метод City:select() добавлен в модель City с помощью трейта ActiveRecordTrait
538+ $result = Address::select('a')
539+ ->with('city', 'c')
540+ ->with('places', 'p')
541+ ->with(
542+ 'comments', 'cm', 'p',
543+ 'left', 'and cm.mark >= :mark', [':mark' => 3]
544+ )
545+ ->all();
546+
547+ print_r($result);
548+ /*Array
549+ (
550+ [0] => Array
551+ (
552+ [id] => 1
553+ [city_id] => 1
554+ [name] => Tverskaya st., 7
555+ [city] => Array
556+ (
557+ [id] => 1
558+ [name] => Moscow
559+ )
560+
561+ [places] => Array
562+ (
563+ [0] => Array
564+ (
565+ [id] => 1
566+ [address_id] => 1
567+ [name] => TC Tverskoy
568+ [comments] => Array
569+ (
570+ [0] => Array
571+ (
572+ [id] => 1
573+ [place_id] => 1
574+ [username] => Ivan Mustafaevich
575+ [mark] => 3
576+ [text] => Not bad, not good
577+ )
578+
579+ [1] => Array
580+ (
581+ [id] => 2
582+ [place_id] => 1
583+ [username] => Peter
584+ [mark] => 5
585+ [text] => Good place
586+ )
587+
588+ )
589+
590+ )
591+
592+ [1] => Array
593+ (
594+ [id] => 2
595+ [address_id] => 1
596+ [name] => Tverskaya cafe
597+ [comments] => Array
598+ (
599+ )
600+
601+ )
602+
603+ )
604+
605+ )
606+
607+ [1] => Array
608+ (
609+ [id] => 2
610+ [city_id] => 1
611+ [name] => Schipok st., 1
612+ [city] => Array
613+ (
614+ [id] => 1
615+ [name] => Moscow
616+ )
617+
618+ [places] => Array
619+ (
620+ [0] => Array
621+ (
622+ [id] => 3
623+ [address_id] => 2
624+ [name] => Stasova music school
625+ [comments] => Array
626+ (
627+ [0] => Array
628+ (
629+ [id] => 4
630+ [place_id] => 3
631+ [username] => Ann
632+ [mark] => 5
633+ [text] => The best music school!
634+ )
635+
636+ )
637+
638+ )
639+
640+ )
641+
642+ )
643+
644+ [2] => Array
645+ (
646+ [id] => 3
647+ [city_id] => 2
648+ [name] => Mayakovskogo st., 12
649+ [city] => Array
650+ (
651+ [id] => 2
652+ [name] => St. Petersburg
653+ )
654+
655+ [places] => Array
656+ (
657+ [0] => Array
658+ (
659+ [id] => 4
660+ [address_id] => 3
661+ [name] => Hostel on Mayakovskaya
662+ [comments] => Array
663+ (
664+ )
665+
666+ )
667+
668+ [1] => Array
669+ (
670+ [id] => 5
671+ [address_id] => 3
672+ [name] => Mayakovskiy Store
673+ [comments] => Array
674+ (
675+ [0] => Array
676+ (
677+ [id] => 5
678+ [place_id] => 5
679+ [username] => Stas
680+ [mark] => 4
681+ [text] => Rather good place
682+ )
683+
684+ )
685+
686+ )
687+
688+ )
689+
690+ )
691+
692+ [3] => Array
693+ (
694+ [id] => 4
695+ [city_id] => 2
696+ [name] => Galernaya st., 3
697+ [city] => Array
698+ (
699+ [id] => 2
700+ [name] => St. Petersburg
701+ )
702+
703+ [places] => Array
704+ (
705+ [0] => Array
706+ (
707+ [id] => 6
708+ [address_id] => 4
709+ [name] => Cafe on Galernaya
710+ [comments] => Array
711+ (
712+ [0] => Array
713+ (
714+ [id] => 6
715+ [place_id] => 6
716+ [username] => Stas
717+ [mark] => 3
718+ [text] => Small menu, long wait
719+ )
720+
721+ )
722+
723+ )
724+
725+ )
726+
727+ )
728+
729+ )*/
535730```
536731
537732Репозиторий с демонстрацией использования расширения: https://github.com/Smoren/yii2-query-relation-manager-demo
0 commit comments