RE: Guide to filters?
"Jan Bolmeson" <[email protected]>
| Newsgroups | gmane.comp.php.pear.liveuser |
|---|---|
| Message-ID | <[email protected]> |
Thank you for the exhaustive answer... :) But hence if I understood it right - there is no way to use perm->getRights() with filter so it corresponds to the following sql: SELECT lu.area_id, area_define_name, right_id, right_define_name FROM liveuser_rights JOIN liveuser_areas AS lu ON lu.area_id = liveuser_rights.area_id Thanks //jan ____________________________________________ Jan Bolmeson, Civilingenjör epost: ([email protected]) mobil: 0735 12 86 18 | Digitalt visitkort (vCard) Fernebrant & Ivtaco Mediaproduktion Kristianstadgatan 41B | 214 35 MALMÖ tfn: 040 30 11 88 | http://www.ivtaco.se > -----Original Message----- > From: [email protected] [mailto:liveuser- > [email protected]] On Behalf Of Lukas Smith > Sent: den 29 juni 2005 13:58 > To: LiveUser-DevList > Subject: Re: [LiveUser] Guide to filters? > > Jan Bolmeson wrote: > > I cant really seem to figure out filters, especially the with part > > could somebody explain how it relates to SQL JOIN? E.g. I am trying to > use > > the GetRights() to return all the rights with their area_id changed to > the > > area_define_name I am about to write my own sqls since it would go 10 > times > > as fast so I am pretty sure I am missing something here =o| > > The with part is essentially a way to have LiveUser_Admin to another > get*() call per row in the result set. > > But here goes a simple filter wtf? guide .. or better a generic guide to > the parameters supported in the admin api .. > > 1) 'fields' (default: all fields from the first table in the > "selectable_tables" property): this is an array containing the fields > you want to fetch. the storage engine will attempt to automatically > determine the most logical set of tables to join if necessary. this set > of tables depends on the get*() method you called and can be affecred by > the "selectable_tables" property. the order is relevant and therefore > its not irrelevant which get*() method you call, even if the tables you > are interested are listed in both "selectable_tables" arrays. > > $params = array('fields' => array('foo', 'bar')); > > 2) 'with' (default: no with): this setting uses "withFieldMethodMap" > property to determine what get*() method should be used for the given > field. The specified field is implicitly added to the field list, if its > not already listed there explicitly. > > $params = array('with' => array('group_id')); > $LUadmin->perm->getUsers($param); > > this will fetch all the users from the perm database and it will do a > join with the groupusers table in order to fetch the group_id field. it > will then do a getGroups() call using the group_id of each row as the > only filter. the result will be stored into a key "groups". > > 3) 'filters' (default: no filters): this is essentially a key value pair > with the field on which the filter is to be executed is the key and the > value is the criterion to match against. the simplest way is to have a > simple scalar value which uses simple "=" comparisions. If you pass a > php null value it will do an "IS NULL" check. if the value is a simple > array that does not have a key "value" in any position an "IN ([comma > separated list of values])" check will be made. if the value does > contain a key "value", than it will also expect an "op" key which > specifies the comparision operatator (like "=", "<", "NOT IN" etc.). If > the value of the "value" key is an array it will create a comma > separated list, if not it will just quote the value. multiple filters > will be AND'ed. > > fields specified inside the filters will affect what tables are joined. > > 4) 'orders' (default: no order by): a simple array containing the names > of fields by which the result should be ordered. fields specified inside > the orders will affect what tables are joined. > > 5) 'select' (default: 'all'): possible values are > 'all' if you want a two dimensional array containing all rows from the > result set. > 'col': if you only want the first column of the result set as a single > dimensional array > 'row': if you only want the first row of the result set as a single > dimensional array > 'one': if you only want the first column of the first row of the result > set as a scalar value > > 6) 'rekey' (default: false): determines if the first dimension of the > result where 'select' was set to 'all' should be the first column of > each row. > > 7) 'group' (default: false): determines if all of the values with the > same value in the first column when using the rekey option should be > grouped inside another array. > > 8) 'limit' (default: none): determines if the number of rows in the > result set should be limited by the given amount > > 9) 'offset' (default: none): determines if the given number of rows > should be skipped at the beginning of the result set > > hope this helps .. > look at the example 1 in the liveuser admin package to see some sample > calls. > > regards, > Lukas Smith > [email protected] > _______________________________ > BackendMedia > www.backendmedia.com > [email protected] > > Linn Zwoch Smith GbR > Pariser Str. 44 > D-10707 Berlin > > Tel +49 30 83 22 50 00 > Fax +49 30 83 22 50 07 > > _______________________________________________ > LiveUser mailing list > [email protected] > http://mailman.21st-hq.de/mailman/listinfo/liveuser