Log message #4155422

# At Username Text
# Jul 3rd 2018, 14:00 slackebot4 [..]\vendor\cakephp\cakephp\config\bootstrap.php on line 23 any clue how to fix this? thanks for all tipps
# Jul 3rd 2018, 14:00 ollibohland hey guys, we're encountering some trouble concerning console-application in our cake-installation on one of our environments (win) ...when calling the cake-console we get this error: Fatal error: Uncaught Error: Class 'Cake\Routing\Router' not found in [..]\vendor\cakephp\cakephp\config\bootstrap.php:23 Stack trace: #0 [..]\config\bootstrap.php(30): require() #1 [..]\bin\cake.php(31): include('E:\\cm3_prod\\con...') #2 {main} thrown in
# Jul 3rd 2018, 11:50 james.phillips @bravo-kernel Thanks makes me feel less insane now
# Jul 3rd 2018, 11:01 bravo-kernel makes me wonder if something changed along the way
# Jul 3rd 2018, 11:01 bravo-kernel @james.phillips I am seeing the same. Both `?include` parameter and `contain` in the controller REQUIRE the model to be present in routes
# Jul 3rd 2018, 10:48 james.phillips I didnt have it in my routes to begin with as it wasnt needed but adding fixed that issue...which is confusing as its not needed.
# Jul 3rd 2018, 10:45 james.phillips makes sense but when I remove it I get the error array (\n 'controller' => 'CrmEventSubtypes',\n '_method' => 'GET',\n 'action' => 'view',\ is missing when using $event->getSubject()->query->contain([
# Jul 3rd 2018, 10:34 bravo-kernel does that make sense?
# Jul 3rd 2018, 10:33 bravo-kernel Users will not be able to access `/cities` but will get the contained data when accessing `/countries`
# Jul 3rd 2018, 10:33 bravo-kernel then `Cities` does not have to be in your routes.php
# Jul 3rd 2018, 10:33 bravo-kernel However, let's say you want to include/contain `Cities` in the index action for countries
# Jul 3rd 2018, 10:32 bravo-kernel e.g. if you want to be able to access `/countries`... `Countries` needs to be in your route.php
# Jul 3rd 2018, 10:32 bravo-kernel @james.phillips you only need to add stuff to `$API_RESOURCES` in `routes.php` if you want to access that model directly
# Jul 3rd 2018, 10:22 josbeir $routes->plugin('Products', [ '_namePrefix' => 'products:' ]
# Jul 3rd 2018, 10:21 josbeir hmm, shoudln't the _namePrefix argument work on $routes->plugin routes ?
# Jul 3rd 2018, 09:33 slackebot4 } }); });
# Jul 3rd 2018, 09:33 james.phillips Router::prefix('api', function ($routes) { //$routes->setExtensions(['json']); $routes->prefix('v1', function ($routes) { //valid api routes $API_RESOURCES = [ 'CrmContacts', 'CrmEvents', ]; foreach ($API_RESOURCES as $apiResource) { $routes->resources($apiResource, [ 'inflect' => 'dasherize' ]);
# Jul 3rd 2018, 09:32 james.phillips ok.. i fixed it but im confused...
# Jul 3rd 2018, 09:29 slackebot4 associated correctly....Maybe its somethign outside of this code messing it up
# Jul 3rd 2018, 09:29 james.phillips If I put a typo in on purpose i get "detail": "CrmEvents is not associated with CrmEventSubtype" Correct...If I put the correct name in I get A route matching \"array (\n 'controller' => 'CrmEventSubtypes',\n '_method' => 'GET',\n 'action' => 'view',\n 0 => 2,\n 'prefix' => 'api/v1',\n 'plugin' => NULL,\n '_ext' => NULL,\n)\" could not be found. ...... Thou....futher down the debug I can see event data with the subtype data
# Jul 3rd 2018, 09:26 james.phillips Do I need to tell my api CrmEvents controller where the CrmEventsSubypes model is...I assumed it would already know
# Jul 3rd 2018, 09:20 josbeir @tim hahaha
# Jul 3rd 2018, 09:18 james.phillips there isnt a CrmEventSubtypes controller as its just a model... Its a related to CrmEvents and I have a controller within the api codebase for CrmEvents... Events model is working so I assume $event->getSubject()->query->contain([ 'CrmEventSubtypes', ]); would just bring back that related data
# Jul 3rd 2018, 09:16 bernat Ok, thanks. I'm doing it but some piece is missing.
# Jul 3rd 2018, 09:15 bernat Thanks @neon1024. So I presume Cakephp has no support for this.
# Jul 3rd 2018, 09:15 neon1024 I don’t know how to use the Response object to stream, but I bet you can. Probably best check out the PSR7 standard to see what the functionality is
# Jul 3rd 2018, 09:15 neon1024 This is what I used, and I streamed directly from the Controller, without using the Response object
# Jul 3rd 2018, 09:14 neon1024 https://www.sitepoint.com/php-streaming-output-buffering-explained/
# Jul 3rd 2018, 09:14 bernat I know how to do it without using the response object but I'm wondering how to use it for that if possible.
# Jul 3rd 2018, 09:14 bernat but no response object
# Jul 3rd 2018, 09:13 neon1024 No, I used a Cake Controller
# Jul 3rd 2018, 09:13 james.phillips I assume if i do query->contain([ then it looks at related models rather than controllers
# Jul 3rd 2018, 09:13 bernat So you used vanilla PHP for that, did you?
# Jul 3rd 2018, 09:13 neon1024 @bernat I did it once for a Javascript stream, and I just used the `ob_flush` methods, let me see if I can find the code
# Jul 3rd 2018, 09:13 james.phillips thanks @bravo-kernel. The tables and entites are setup and work if I go throu the main app rather than the api... The api has its own versions of the some of the controllers.. I will have a think
# Jul 3rd 2018, 09:12 bernat There's a CallbackStream example but I think it returns the full content in one call.
# Jul 3rd 2018, 09:11 bernat Yes
# Jul 3rd 2018, 09:11 neon1024 Oh, you want to stream the file?
# Jul 3rd 2018, 09:11 bernat @neon1024, which example there allows to send the file contents as they are generated?
# Jul 3rd 2018, 09:10 bravo-kernel @james.phillips make sure your tables and entities are in place and... that you have added all required controllers to the ApiResoures in routes.php
# Jul 3rd 2018, 09:09 neon1024 https://book.cakephp.org/3.0/en/controllers/request-response.html#sending-files