CakePHP pagination
Üdv!
Elkezdtem írni cakePHP segítségével egy hírező rendszert.
Egy hír olvasásánál, kiírja a kommenteket, amelyeket csak 10-esével szeretnék megjeleníteni.
Ez működik is, csak éppen dupla lekérdezés történik.
models/news.phpmodels/comments.phpcontrollers/news_controller.phpEkkor a $news tömb tartalma
News => array(//az adott hír tartalma)
Comments => array(//az összes komment ami ehhez a hírhez tartozik)
$comments tartalma
Comments => array(//az egy oldalra jutó komment)
Kérdésem, hogyan lehetne másképp megoldani, hogy ne legyen benne a $news tömbben az összes komment, mert így körülbelül adtam a sz@rnak egy pofont.
Előre is köszönöm!
Ui: kb 2 napja kezdtem el a cakephp-val foglalkozni, googleben nem találtam rá megoldást, csak ugyen ezt. (Méghozzá itt: http://blog.matsimitsu.nl/code/162/paginating-child-models)
Üdv!
■ Elkezdtem írni cakePHP segítségével egy hírező rendszert.
Egy hír olvasásánál, kiírja a kommenteket, amelyeket csak 10-esével szeretnék megjeleníteni.
Ez működik is, csak éppen dupla lekérdezés történik.
models/news.php
class News extends AppModel{
var $name = 'News';
var $hasMany = array('Comments'=>array('className'=>'Comments')); //comment model megívása
var $virtualFields = array(
'comment_count' => 'SELECT COUNT(*) FROM comments as Comments WHERE News.id=Comments.news_id',
'author' => 'SELECT username FROM users as Users WHERE Users.id=News.user_id'
);
}
class Comments extends AppModel {
var $name = 'Comments';
var $virtualFields = array(
'author' => 'SELECT username FROM users as Users WHERE Users.id=Comments.user_id'
);
var $belongsTo = array('News'); //átadom a news modelnek
}
...
function read($url){
$this->updateNewsread($url);
$this->set('news', $this->News->findByUrl($url));
$this->set('comments', $this->paginate('Comments'));
}
private function updateNewsread($url){
$this->News->query('UPDATE news SET readed=readed+1 WHERE news.url="'.$url.'"');
}
...
News => array(//az adott hír tartalma)
Comments => array(//az összes komment ami ehhez a hírhez tartozik)
$comments tartalma
Comments => array(//az egy oldalra jutó komment)
Kérdésem, hogyan lehetne másképp megoldani, hogy ne legyen benne a $news tömbben az összes komment, mert így körülbelül adtam a sz@rnak egy pofont.
Előre is köszönöm!
Ui: kb 2 napja kezdtem el a cakephp-val foglalkozni, googleben nem találtam rá megoldást, csak ugyen ezt. (Méghozzá itt: http://blog.matsimitsu.nl/code/162/paginating-child-models)
Üdv!
function read($url){