@@ -25,20 +25,23 @@ public function __construct(Factory $factory)
2525 * Allows you to create an active record instance through the factory.
2626 *
2727 * @param string $arClass active record class.
28- * @param ConnectionInterface $connection the database connection used for creating active record instances.
28+ * @param ConnectionInterface|null $db the database connection used for creating active record instances.
2929 *
3030 * @throws InvalidConfigException
3131 *
3232 * @return ActiveRecordInterface
3333 */
34- public function createAR (string $ arClass , ConnectionInterface $ connection = null ): ActiveRecordInterface
34+ public function createAR (string $ arClass , ConnectionInterface $ db = null ): ActiveRecordInterface
3535 {
36- return $ this ->factory ->create (
37- [
38- 'class ' => $ arClass ,
39- '__construct() ' => ['db ' => $ connection ?? $ this ->getConnection ()],
40- ]
41- );
36+ $ params = [
37+ 'class ' => $ arClass ,
38+ ];
39+
40+ if ($ db ) {
41+ $ params ['__construct() ' ]['db ' ] = $ db ;
42+ }
43+
44+ return $ this ->factory ->create ($ params );
4245 }
4346
4447 /**
@@ -55,17 +58,20 @@ public function createAR(string $arClass, ConnectionInterface $connection = null
5558 public function createQueryTo (
5659 string $ arClass ,
5760 string $ queryClass = null ,
58- ConnectionInterface $ connection = null
61+ ConnectionInterface $ db = null
5962 ): ActiveQueryInterface {
60- return $ this ->factory ->create (
61- [
62- 'class ' => $ queryClass ?? ActiveQuery::class,
63- '__construct() ' => [
64- $ arClass ,
65- $ connection ?? $ this ->getConnection (),
66- ],
67- ]
68- );
63+ $ params = [
64+ 'class ' => $ queryClass ?? ActiveQuery::class,
65+ '__construct() ' => [
66+ 'modelClass ' => $ arClass ,
67+ ],
68+ ];
69+
70+ if ($ db ) {
71+ $ params ['__construct() ' ]['db ' ] = $ db ;
72+ }
73+
74+ return $ this ->factory ->create ($ params );
6975 }
7076
7177 /**
@@ -82,28 +88,19 @@ public function createQueryTo(
8288 public function createRedisQueryTo (
8389 string $ arClass ,
8490 string $ queryClass = null ,
85- ConnectionInterface $ connection = null
91+ ConnectionInterface $ db = null
8692 ): ActiveQueryInterface {
87- return $ this ->factory ->create (
88- [
89- 'class ' => $ queryClass ?? RedisActiveQuery::class,
90- '__construct() ' => [
91- $ arClass ,
92- $ connection ?? $ this ->getConnection (),
93- ],
94- ]
95- );
96- }
93+ $ params = [
94+ 'class ' => $ queryClass ?? RedisActiveQuery::class,
95+ '__construct() ' => [
96+ 'modelClass ' => $ arClass ,
97+ ],
98+ ];
9799
98- /**
99- * Returns the active connection at the factory.
100- *
101- * @throws InvalidConfigException
102- *
103- * @return ConnectionInterface
104- */
105- public function getConnection (): ConnectionInterface
106- {
107- return $ this ->factory ->create (ConnectionInterface::class);
100+ if ($ db ) {
101+ $ params ['__construct() ' ]['db ' ] = $ db ;
102+ }
103+
104+ return $ this ->factory ->create ($ params );
108105 }
109106}
0 commit comments