2010-11-19 20 views
1

İşte benim modelim, ne yaptığı, belirli bir gönderiyi kullanıcıdan alıyor. Her gönderide, comments adlı bir dizide saklanan yorumlar da olabilir. Çalıştığım her şeye sahibim ve yazıyı yorumlarla birlikte gösterebiliyorum. Sorun, her yorumun, yorum yapıldığında görüntülenen post_date vardır. Tarihi "3 hafta önce" gibi bir şeye "dönüştüren" işlevi çağırmam gerekiyor. TimeAgo yöntemi, user_model.php sayfamda bulunur. Alıntı, aslında yazı için olan data adlı bir değişkeni gösterir, yorum dizinin içine gömülür ve bunun üzerinden görüşüme girerim.Codeigniter: Görünümden bir yöntem çağırma

Soru şu ki, bu işlemin daha iyi bir yolu var mı, yoksa görünüm sayfasından TimeAgo yöntemini çağırmalı mıyım?

Not: Ben mongodb kullanıyorum ama mongodb veya mysql olup olmaması önemli değil. Aynı şey ...

user_model.php

$query = array("_id" => new MongoId($plan_id), "username" => $username); 
$fields = array("plan_title", "comments", "post_date"); 

$data = $collection_plans->findOne($query, $fields); 
$data['date'] = self::TimeAgo($data['post_date']->sec); 
$data['username'] = $username; 

return $data; 

cevap

2

benim anlayış bir kitaplık veya yardımcı ardından (otomatik) yük gerektiğinde içine TIMEAGO yöntemini koyardım doğruysa ve tarihi işleme denetleyiciden görüntüye geçmeden önce.

bu sadece içinde user_model.php gelen

+0

Doğru, ama "en iyi uygulama" amaçları için diyelim, bir görüş içinden bir yöntemi çağırmıyor olmamalı? Daha az umursuyorum ama merak ettim. :) – luckytaxi

+0

Görünümden denetleyici yöntemini çağırmamalısınız, ancak yardımcılar faturaya güzelce uymalıdır. MySQL'de veya kontrol cihazınızda çalışan bir ön işlem katmanında bazı alan formatlamalarını da yapabilirsiniz. –

1

Sen den modeli yöntemini çağırın ziyade, aslında senin CI uygulamanın başka bir bölümünü gerekirse başka modeli içinde gelen bu yöntemi erişmesine izin veya ederim kontrolör ve bir değişkene koydu. Daha sonra varı görüntüye geçirirsiniz.

İlgili konular