Log message #4055589

# At Username Text
# Jul 21st 2017, 16:30 nemmons in relation to Viraj's question above - say in a test i do something like ` ConnectionManager::alias('other_connection'); $this->post('/some/url', $params]);` to test some URL in my application. This shouldn't actually work, because in the new PHP `thread` for executing the post request, the alias as defined above won't be persisted, because it's executing from a separate context. Right? Or am i completely misunderstanding how php works?
# Jul 21st 2017, 16:26 Alex__ Found it!
# Jul 21st 2017, 16:25 admad plus we have crud and crud-view plugins ;0
# Jul 21st 2017, 16:23 jeremyharris There is!
# Jul 21st 2017, 16:21 Alex__ Hi, I have a quick question. I haven't used cake in a while, and I haven't used 3 at all. Is there a baking functionality like there is with 2?
# Jul 21st 2017, 16:18 jeremyharris ah for tests, then yeah the alias approach is probably what you want
# Jul 21st 2017, 16:17 viraj.khatavkar I don’t want to do it on the Table class because this is a runtime configuration for tests that are to be run in Codeception
# Jul 21st 2017, 16:16 jeremyharris it might be better to overwrite getDefaultConnection on your table class, add a setDefaultConnection, and do it that way. Would probably be more clear to understand
# Jul 21st 2017, 16:11 jeremyharris that’s how the test database works, when your app code says “use the `default` connection to delete this thing” the alias will point to the test connection instead
# Jul 21st 2017, 16:10 jeremyharris well, `ConnectionManager::alias('other_connection', 'default')` basically says when someone uses the `default` connection, use the `other_connection` instead
# Jul 21st 2017, 16:09 viraj.khatavkar So doing `ConnectionManager::alias('other_connection')` would force the ORM to use the `other_connection` for all of its methods?
# Jul 21st 2017, 16:08 jeremyharris the other solution would be to change the default connection name in your tables (if you extend the table this would be easy)
# Jul 21st 2017, 16:07 jeremyharris you’d have to dropAlias when done though
# Jul 21st 2017, 16:07 jeremyharris similar to how cake sets an alias during tests (so that default resolves to the test connection instead): ConnectionManager::alias(‘otherConnection’, ‘default’)
# Jul 21st 2017, 16:05 viraj.khatavkar How do I do that? I am sorry but I am not getting what you are trying to say exactly
# Jul 21st 2017, 16:05 jeremyharris you could create a connection alias for the default connection to point to the other one
# Jul 21st 2017, 16:03 viraj.khatavkar Not for a specific table. I want it to run using a different connection for all of it’s methods
# Jul 21st 2017, 16:01 jeremyharris @viraj.khatavkar I believe you change the connection on the table
# Jul 21st 2017, 15:59 viraj.khatavkar Hi, I was wondering how do I tell the ORM in runtime to use a specific connection.
# Jul 21st 2017, 15:46 gutts sweet, thank you neon1024
# Jul 21st 2017, 15:46 neon1024 :P
# Jul 21st 2017, 15:46 neon1024 Then,, er Collection!
# Jul 21st 2017, 15:46 neon1024 Then use a resultsMap function
# Jul 21st 2017, 15:45 neon1024 Then use matching to filter the comments by author
# Jul 21st 2017, 15:45 neon1024 As you could also contain Authors for Posts and Comments separately if you wanted using the same table instance, because the ORM is awesome like that :)
# Jul 21st 2017, 15:44 neon1024 Hopefully the parenthesis match up! ;P
# Jul 21st 2017, 15:44 neon1024 This is the kind of thing I’d do :slightly_smiling_face:
# Jul 21st 2017, 15:44 neon1024 https://gist.github.com/davidyell/a1fe56cc13481d2336f03cffc745d4ed
# Jul 21st 2017, 15:42 gutts an assoc. array explicitly overrides the entire thing, makes sense
# Jul 21st 2017, 15:42 gutts that changes the behaviour of things
# Jul 21st 2017, 15:42 gutts wait, i was feeding an associative array instead of a list
# Jul 21st 2017, 15:42 neon1024 1 sec, I’ll write it in a Gist for ease :slightly_smiling_face:
# Jul 21st 2017, 15:41 gutts if I do ->select(['id', 'title']) it wipes out 'comments' I think
# Jul 21st 2017, 15:41 gutts , neon1024
# Jul 21st 2017, 15:41 gutts i want 'id' and 'title' from Posts/$this, but i still want 'comments' => [ ['author' => 'blah' ] ]
# Jul 21st 2017, 15:41 neon1024 Just trying to track down why my find() on the instance returns NULL really
# Jul 21st 2017, 15:40 neon1024 I’m not entirely happy with lines 13 and 14 anyway, I think I might store the instance in a better way, or pass it around
# Jul 21st 2017, 15:39 gutts basically
# Jul 21st 2017, 15:39 gutts so do the select first
# Jul 21st 2017, 15:39 neon1024 Yep
# Jul 21st 2017, 15:39 neon1024 @gutts Yes, like `$this->Examples->find()->select([‘id’, ‘name’])->contain([‘Foo’ => function ($q) { return $q->select([‘Foo.id’, ‘Foo.name’]); }]);