Görünümü denetleyicisi işlevden değer dönmek CakePKP'deki 'geri dönüş' için Fix

5 Cevap php

Şöyle model.php dosyasında bir model sınıfı içinde bir görünüm işlev içinde bir işlevi var

function sqlToUnix($date){
    $YMDThenHMS = explode(" ", $date);
    $YMD = explode("-", $YMDThenHMS[0]);
    $HMS = explode(":", $YMDThenHMS[1]);
    $UnixTime = mktime($HMS[0], $HMS[1], $HMS[2], $YMD[1], $YMD[2], $YMD[0]);

    return $UnixTime;
}

Bu dönüş değeri modele denetleyici belirli bir bakış işlevi içinde kullanılabilir olduğunu $ unixtime verir ama (script propogation durur) benim görünümü işlemek olmaz zaman sorun,

Ben HERHANGİ Controller HER kullanım için bu gibi işlevleri kurabilirsiniz bir yer var mı?

Bu tür () PHP'nin kendisi yerleşik işlevi zaman, ben her yerde sqlToUnix kullanmak mümkün olmak istiyorum

5 Cevap

Eğer yani modelleri, kontrolörler, düşünceler, davranışlar, bileşenler ve yardımcıları, size app / config / bootstrap.php dosyası koyabilirsiniz, her yerden bu işlevi çağırmak istiyorum. İşte bunun için budur. Bu kadar mevcut küresel basitçe sqlToUnix olarak () bir kez;

Özel fonksiyonu için, sizin unixtime biçimi dönmek hiçbir yerleşik işlevleri vardır emin misin?

Ben HERHANGİ Controller HER kullanım için bu gibi işlevleri kurabilirsiniz bir yer var mı?

class MyHelpers
{
    public static function sqlToUnix($SQLDate)
    {
        // code
        return $result;
    }
}

// call me this way, anywhere:
$result = MyHelpers::sqlToUnix($SQLDate);

(Yerine bootstrap.php başka bir PHP dosyasını dahil etmek daha iyi yaparım rağmen) bir işlev bootstrap.php olduğunu yazabilirsiniz.

Ben normalde / app / config dizini içinde bir dosyada herhangi bir ekstra fonksiyonlar veya yapılandırma var ve benim bootstrap.php dosyası ile şunlardır:

require_once(APP.'config'.DS.'my_file_of_whizzy_functions.php');

Işlevi sonra CakePHP uygulaması boyunca kullanılabilir olacak.

Bunun dışında, strtotime ($ sqlDate) yapar; Bir unix timestamp için bir SQL zaman dönüştürmek değil?

Eğer kontrolör ile bu fonksiyona erişmek ve görünüme geçebilir:

//Controller

//inside a controller action
{
$TIMESTAMP = $this->Model->sql2unix($this->Model->getTimestamp());
$this->set('timestampe',$TIMESTAMP);
// or does this even do not work?
}

aksi takdirde bir bileşeni oluşturabilirsiniz

//inside the component // inside of a component method
{
$MODEL = loadModel('ModelName');
$return = $MODEL->sql2unix($MODEL->getTimestamp());

return $return;
}

It is nearly "not important" where to place your code, you just have to follow cakephp's folder/class/helper/method/component structure. Read the manual part about components or helpers and you'll understand everything instantly.

Gerekmez kullanarak zaman appController.php de işlevini saklayarak sorunu çözmek mümkün oldu ve fonksiyonu olarak adlandırılır

$this->sqlToUnix($SQLDate);

Sorusunu soran ama yayınlanmıştır ben sadece bu>