thx for the resp but that's not my problem. :) i'm getting some errors like - data from related models not being formatted - data from related models being formatted many times
On 20 Gen, 17:18, leo <[email protected]> wrote: > I use srttotime() and pass the result to date() using format 'c' in > PHP5 or 'Y-m-d' in PHP4 viz: > date('Y-m-d', strtotime($date)) > $date will need to be formatted like "10 September 2000" - I don't > think the month number will work, but look at the PHP manual for more > info. > > This code I use in the controller::edit or controller::add functions > like: > if (!empty($this->data)) { > $this->data['Event']['start_date'] = date > ('c' ,strtotime($this->data['Event']['start_date'])); > --snip-- > > On Jan 20, 4:25 pm, Ernesto <[email protected]> wrote: > > > > > Hello. > > > i'm writing an app for my little business. i'm using CakePHP + MySQL. > > > My problem are the DB fields formatted in US way. For example > > - dates in MySQL must be written "YYYY-MM-DD" when we usually use "DD/ > > MM/YYYY". > > - US float notation uses dot (.) instead of comma (,) as decimal > > separator. > > > i wrote some code to resolve that "issue" in both ways (read/save) but > > i'm getting some errors, especially on related models. > > > @@ here's my DB schema > > > Person --> HABTM (persons_articles) --> Article --> BELONGSTO --> > > Article_code > > > @@ here's the error > > > Article_code contains a "datetime" field (Article_code.Created). > > > when the page //Cake/persons/details is loaded the > > Article_code.Created gets formatted many times. > > > @@ here's the incriminated code: > > > class AppModel extends Model { > > > function afterFind($results, $primary = false) { > > //the code in this function can be found at > > > > //http://groups.google.com/group/cake-php/browse_thread/thread/ > > 32ab9f8baed4a05a/062678e92b080f18 > > //i just renamed the "doAfterFind" function to "stdFormat" > > //thx @ the original author of that code. > > } > > > function beforeSave() { > > //i convert the data from EU to US so i can save data in > > database > > $this->data = $this->stdFormat($this->data, "ITAtoUS); > > return true; > > > } > > > function stdFormat($data, $format) { > > //standard formats, applied to every field of every model. > > //this function works on flat arrays (field => value) > > foreach ($data as $fieldName => &$value) { > > if ($this->hasField($fieldName)) { > > switch ($this->getColumnType($fieldName)) { > > case "datetime": > > list($date, $time) = > > explode(" ", $value); > > case "date": > > switch ($format) { > > case "UStoITA" > > list($y, > > $m, $d) = explode("-", $data); > > $value = > > trim("$d/$m/$y $time"); > > break; > > case "ITAtoUS": > > list($g, > > $m, $a) = explode("/", $data); > > $value = > > trim("$y-$m-$d $time"); > > break; > > } > > break; > > case "float": > > switch ($format) { > > case "UStoITA": > > > > //sostituisco il separatore decimale (da punto a virgola) > > $value = > > str_replace(".", ",", $value); > > break; > > case "ITAtoUS": > > $value = > > str_replace(",", ".", $value); > > break; > > } > > break; > > } > > } > > } > > $data = modelFormat($data, $format); > > return $data; > > } > > > function modelFormat($data, $format) { > > //placeholder > > //this function is designed to be overwritten in models > > //this function must contain all the model's formats > > return $data; > > } > > > } > > > PS: Any idea on how to clean up/simplify that code is welcome :) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
