2 May 2008

CakePHP e i layout (1)



Qualche tempo fa scrivevo che stavo cercando di capire come mai lo stesso codice si comportava in maniera diversa se caricato in locale (sul mio computer) o in remoto (sullo spazio web di netsons).

In particolare il problema era il seguente:
creando un nuovo post (da qui) oppure modificandone uno già presente, compariva la finestra popup con un messaggio “SAVE FAILED” nonostante il salvataggio fosse andato a buon fine.

Come si spiega tutto ciò?

Andando a rivedere passo passo il codice sviluppato (seguendo questo tutorial già citato precedentemente) mi sono soffermato su queste due righe:

// functions edit2 and add2 in posts_controller.php
Configure::write('debug', '0');     //turn debugging off; debugging breaks ajax
$this->layout = 'Ajax';     //set the layout to Ajax so the ajax doesn't break

Vediamo cosa fanno esattamente:

  1. Configure::write imposta la variabile DEBUG nel file di configurazione a 0. Se andiamo a vedere il file core.php situato in app2/config/ (dove app2 è il nome della mia applicazione in CakePHP) vediamo i vari livelli di debug:
    /*** Set debug level here:
     
    * - 0: production
     
    * - 1: development
     
    * - 2: full debug with sql
     
    * - 3: full debug with sql and dump of the current object
     
    *
     
    * In production, the "flash messages" redirect after a time interval.
     
    * With the other debug levels you get to click the "flash message" to continue.
     
    *
     
    */
     
    define('DEBUG', 1);
  2. $this->layout = ‘Ajax’; invece imposta il layout di nome Ajax che è tra quelli predefiniti di CakePHP.

Dove stava quindi l’errore?

Tutto dipendeva dal fatto che Windows NON è case-sensitive mentre Linux sì!

In pratica, scrivendo “Ajax” invece di “ajax” sotto Windows (dove stavo effettuando le mie prove in locale) funzionava ugualmente, sotto Linux (su cui si trova netsons) invece no!

Quando scrivete codice quindi – questa è la lezione che ho imparato dopo tante sofferenze – state MOLTO attenti alle maiuscole ed alle minuscole! 😉

Per una spiegazione più dettagliata riguardo CakePHP e i layout rimando a questo mio articolo.


Tags: , , ,

Subscribe to Comments

3 Responses to “CakePHP e i layout (1)”

  1. […] UPDATE: problema risolto, vedi qui. […]

     
  2. Grande!
    Scrivi un commento a hydra dicendogli che il suo codice e’ errato, vedrai che ti ringrazia!

     

    paolo

  3. Grazie a te, è merito soprattutto tuo se abbiamo risolto! 😉

    A hydra ho già scritto, ma senza risultati pare, almeno finora…

    Ciao!

     

    MDT

Leave a Reply

Message:

  • Ricerca

    or
  • Language

  • Categorie

  • Delicious

  • Statistiche


    Warning: Illegal string offset 'timestamp' in /home/mhd-01/www.micheledallatorre.it/htdocs/blog/wp-content/plugins/firestats/firestats-wordpress.php on line 1081

    Warning: Illegal string offset 'timestamp' in /home/mhd-01/www.micheledallatorre.it/htdocs/blog/wp-content/plugins/firestats/firestats-wordpress.php on line 1081

    Warning: Illegal string offset 'timestamp' in /home/mhd-01/www.micheledallatorre.it/htdocs/blog/wp-content/plugins/firestats/firestats-wordpress.php on line 1081

    Warning: Illegal string offset 'timestamp' in /home/mhd-01/www.micheledallatorre.it/htdocs/blog/wp-content/plugins/firestats/firestats-wordpress.php on line 1081
    • Pages displayed : 33362
    • Unique visitors : 18465
    • Pages displayed in last 24 hours : 0
    • Unique visitors in last 24 hours : 0