Log message #4020765

# At Username Text
# Apr 27th 2017, 19:46 btx having a brain fart. how would I add validation to make sure (eg on `create` that a Product has been assigned a Category (hasMany)? I tried `$validator->requirePresence('categories')` but it’s just ignored
# Apr 27th 2017, 19:46 COLT_ any of you guys use PHP on a windows machine?
# Apr 27th 2017, 19:46 COLT_ hello guys
# Apr 27th 2017, 19:43 btx @siran, it’s only protected so `$query->_parts` should be accessible
# Apr 27th 2017, 19:35 siran i want to access _parts
# Apr 27th 2017, 19:35 siran is there a getter?
# Apr 27th 2017, 19:35 siran hey, how to access a protected property of Query object?
# Apr 27th 2017, 19:24 aaronds exit
# Apr 27th 2017, 19:24 btx ew
# Apr 27th 2017, 19:24 COLT_ does any of you guys use PHP on a windows machine?
# Apr 27th 2017, 19:23 siran aaronds: ok i already got it, thanks!
# Apr 27th 2017, 19:23 aaronds @siran, of course, you're not extending Query, you'll be extending Table, which I just overlooked...
# Apr 27th 2017, 19:23 holisticnetworking I should say @btx
# Apr 27th 2017, 19:23 aaronds within your beforeFind, @siran, have a look at the implementation of \Cake\Database\Query, you'll see the protected $_parts variables holds a lot of info.
# Apr 27th 2017, 19:22 holisticnetworking Well. Being a search, that's a long story. However the Paginator is creating the pagination links.
# Apr 27th 2017, 19:22 siran aaronds: thanks. in what context is $this ?
# Apr 27th 2017, 19:22 btx @holisticnetworking what does the code generating those URLs look like?
# Apr 27th 2017, 19:20 holisticnetworking It is specifically the `limit` variable that is missing.
# Apr 27th 2017, 19:20 aaronds @siran, have a look at $this->_parts['where']
# Apr 27th 2017, 19:19 slackebot1 facet=andst%5B0%5D=5and sort=Clients.emailand direction=asc
# Apr 27th 2017, 19:19 slackebot1 fmt=invoicesand facet=andst%5B0%5D=5and sort=Invoices.idand direction=descand limit=50and saved_query=14 // Paginator URLs on the same page: <https://limsdev4.biotech.cornell.edu/c/invoices?selected_columns=Invoices.id%2CClients.last_name%2CClients.state%2CClients.country%2CClients.email%2CBPayment.country%2CBPayment.state%2CInvoices.external%2CJournal.id2%2CInvoices.grand_total%2CInvoices.amount_paid%2CInvoices.paid& fmt=invoices and_method=POSTand saved_query=14and
# Apr 27th 2017, 19:19 holisticnetworking Any idea why Paginator would suddenly drop some preset GET variables? Compare the two URLs, broken down for clarity: // Original https://limsdev4.biotech.cornell.edu/c/invoices?_method=POSTandsaved_query=andselected_columns=Invoices.id%2CClients.last_name%2CClients.state%2CClients.country%2CClients.email%2CBPayment.country%2CBPayment.state%2CInvoices.external%2CJournal.id2%2CInvoices.grand_total%2CInvoices.amount_paid%2CInvoices.paid
# Apr 27th 2017, 19:19 COLT_ why does php_pdo_sqlsrv.dll keeps asking me for ODBC driver 13 on Cake?
# Apr 27th 2017, 19:18 COLT_ someone pleasee help me get out of a doubt
# Apr 27th 2017, 19:17 siran in beforeFind I need to tweak the query and remove one of the where() conditions, is this possible?
# Apr 27th 2017, 19:15 siran given a $query object, how can I extract the where conditions that have been applied to it, is this possible?
# Apr 27th 2017, 19:15 siran hi all!
# Apr 27th 2017, 19:13 aaronds nice, like that. I'll have a play around with it tomorrow. Thanks for your help @btx.
# Apr 27th 2017, 19:13 btx @aaronds
# Apr 27th 2017, 19:11 btx aaronds - you could also actually override `Router` to provide the modified `::url` function - and in `url()` do your check and fall back to `parent::url()` if no tricky stuff needs doing
# Apr 27th 2017, 19:03 aaronds ugly, but it'll do for what I need it for
# Apr 27th 2017, 19:02 aaronds I suppose something to the effect of `if (in_array('UrlBuilder', class_uses(new App\Controller\Admin\DashboardsController())) { /* do stuff */ }` would be required, with the option to fall back to guessing via the native Router::url();
# Apr 27th 2017, 18:57 btx easier **
# Apr 27th 2017, 18:57 btx always makin things easy for future me :P
# Apr 27th 2017, 18:57 aaronds for sure
# Apr 27th 2017, 18:57 btx yeah but at least it will be doing it in one place globally, so if you ever need to add weird logic it will be easy to find where :)
# Apr 27th 2017, 18:56 aaronds That surely still needs to figure out namespace/prefix stuff in the same disgusting manner?
# Apr 27th 2017, 18:54 btx maybe something like a `Trait` that provides a method on the controller to build a url according to your app rules?
# Apr 27th 2017, 18:53 aaronds You're correct @btx, that would be a side effect
# Apr 27th 2017, 18:53 aaronds I suppose for now I'll just use ReflectionMethod or something to figure out what the prefix should be based on the namespace of the class. But this feels wrong and horrible, it just allows for automagicalabilities.
# Apr 27th 2017, 18:52 btx that would be almost 100% guaranteed to break tho if you ever need to overload a class provided by, ie., a plugin