[Risolto] Timestamp Su Yii

Ciao a tutti,

ho cominciato ora a utilizzare yii e avrei bisogno del vostro aiuto.

Ho creato tramite gii il model e il controller di una tabella che gestisce la tracciatura delle chiamate telefoniche. Ovviamente il dataentry viene fatto manualmente e mi servirebbe che al momento dell’inserimento di una nuova chiamata il campo “ora” si popoli in automatico con la data e l’ora attuali. Sul db il campo “ora” ha l’attributo timestamp che credo in php non possa essere riconosciuto.

Per ultimo mi piacerebbe poter inserire un campo sul db per verificare lo stato della chiamata magari mettendo un campo evasa con un controllo "SI" o "NO" e che se valorizzata su si tolga automaticamente la chiamata dalla lista delle chiamate ancora da evadere.

Vi ringrazio anticipatamente e spero di essere riuscito a farvi capire le mie necessità.

Se timestamp non è un vincolo, ti suggerisco di usare il campo datetime. Per quel che riguarda php, usa la classe \DateTime() e sei a posto.

Scusa se potrà sembrare una domanda stupida, ma come ti ho detto inizio proprio ora ad utilizzare php e yii.

In che file inserisco la classe \DateTime?

Sto studiando dei manuali trovati online ma per ora tanta carne sulla brace e tanta confusione.

Ciao e grazie

Datetime è una classe PHP.

http://php.net/manual/en/book.datetime.php

Con la funzione date




$model = new MioModel();

$model = date('Y-m-d');



Con la classe Datetime




$oggi = new Datetime();

$model = new MioModel();

$model = $oggi->format('Y-m-d');



Grazie 1000 per le tue indicazioni. Provo a mettere in pratica quanto mi ha suggerito.

Ciao,

purtroppo non riesco a capire in che file devo inserire il codice che mi hai scritto.

Mi puoi dare qualche altra indicazione.

Grazie.

Ciao,

ho risolto inserendo il seguente codice sulle rules nel model

array(‘ORA’,‘default’,

      'value'=>new CDbExpression('NOW()'),


          'setOnEmpty'=>false,'on'=>'insert'),

Impostando, come mi avevi inizialmente suggerito, il campo "ORA" con attributo datetime sul db.

Al seguente indirizzo ho trovato la soluzione applicata:

http://www.yiiframework.com/wiki/10/how-to-automate-timestamps-in-activerecord-models/

Ok, però voglio suggerirti di seguire un po’ di regole in questo forum:

  1. quando pubblichi del codice, indentalo, e racchiudilo nell’apposito marcatore così una cosa come questa

class MiaClasse

{

public function mioMetodo()


{


    // non faccio niente


}

}

la possiamo vedere così:




class MiaClasse

{

    public function mioMetodo()

    {

        // non faccio niente

    }

}



Per vedere il codice in questo modo devi selezionare il simbolino <> che trovi sopra all’editor del post.

  1. indenta il codice o diventa difficile e scomodo leggerlo.

  2. grazie per aver condiviso la tua soluzione =)