Bonjours a tous,
je me retrouve bloquer sur mon systeme de pagination dans mon PortfoliosController
dans ma fonction index je veux rajouter une 'limit' dans ma reqsql ( comme on faisais pour le blog )
mais d'ai que je rajoute la 'limit'
'limit' => ($this->request->page).','.$perPage,
j'obtiens des errors je comprend pas je tourne en round depuis hier
( ! ) Notice: Trying to get property of non-object in
C:\wamp\www\tuto\controller\PortfoliosController.php on line 15
la ligne 15 correspond a la limit evoquer juste au dessu
et
( ! ) Warning: PDOStatement::execute() <a href='pdostatement.execute'>pdostatement.execute</a>]:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check
the manual that corresponds to your MySQL server version for the right syntax to use near '-1,2' at
line 1 in C:\wamp\www\tuto\core\Model.php on line 136
voila mon index de mon controller
/**
* Portfolio, liste les different projects
**/
function index(){
$perPage = 2;
$this->loadModel('Project');
$condition = array('online' => 1);
$d'projects'] = $this->Project->find(array(
'conditions' => $condition,
'fields' => 'Project.id,Project.name,Project.slug,Project.image,Project.created,Project.content,Category.name as catname,Category.slug as catslug',
'order' => 'id DESC',
//'limit' => ($this->request->page-1).','.$perPage,
'join' => array('categories as Category' => 'Category.id=Project.category_id')
));
$d'total'] = $this->Project->findCount($condition);
$d'page'] = ceil($d'total'] / $perPage);
foreach($d'projects'] as $k => $v) {
$d'projects']$k] = $v;
$d'projects']$k]->comments = $this->getComments($v->id);
}
$this->set($d);
}
est ce que quelqu'un aurais une idée svp ?
merci d'avance
suis trop deg je vien de comprend
c'est parceque dans mon view/portfolios/index.php j'appellais 2 fois l'index portfolio ,....
<?php $portfolio= $this->request('Portfolios','index'); ?>
<?php $categories = $this->request('Categories','index'); ?>
alors que je devais juste faire la request de categories
<?php $categories = $this->request('Categories','index'); ?>
a plus et merci a tous ceux qui on essayer de m'aider ,
a bientot
svp ? vraiment personne n'as deja eu un probleme du genre ?
ou serai m'aider je pete un plomb
re, je me tape la tête
encore plus étrange ,
en renotant bien ma limite de départ
'limit' => ($perPage*($this->request->page-1)).','.$perPage,
quand je reload ma page j'ai toujours les errors ,.. mais ca fonctionne , cad :
j'ai 4 project dans ma db , si je paramètre perpage = 3
j'ai bien a ma page 1 les 3 derniers projects
et a ma page 2 le dernier project
? je comprend pas ? pk les erreurs
Salut,
l'erreur que tu as eu, c'est bien celle là non ?
( ! ) Notice: Trying to get property of non-object in
C:\wamp\www\tuto\controller\PortfoliosController.php on line 15
C'est ton attribut request qui n'est pas défini, n'existe pas dans l'objet courant sur lequel tu travaille.
hello,
oui c'est bien cette error
C'est ton attribut request qui n'est pas défini, n'existe pas dans l'objet courant sur lequel tu travaille.
comment je peu remédier a ca ?
et j'ai aussi cette error mais je suis sur que c'est lier a la première error
Warning: PDOStatement::execute() <a href='pdostatement.execute'>pdostatement.execute</a>]:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to
use near '-3,3' at line 1 in C:\wamp\www\tuto\core\Model.php
en tous cas merci a toi de bien vouloir m'aider ! a bientot
Eh bien je n'ai regardé aucune vidéo du tuto mais je vais essayer de t'aider comme je le peux ^^
Ta méthode index doit appartenir à une classe. Regarde dans cette classe s'il y a un attribut request. Si ta classe hérite d'une autre classe, alors regarde la classe mère etc. Il doit forcément avoir un attribut qui se nomme request quelque part. Je pense qu'en résolvant ça, tu vas avancer sur ton autre erreur.
hello pewel, ecoute je suis vraiment perdu ,...
ma class request
<?php
class Request{
public $url; // URL appellé par l'utilisateur
public $page = 1; // pour la pagination
public $prefix = false; // Prefixage des urls /prefix/url
public $data = false; // Données envoyé dans le formulaire
function __construct(){
$this->url = isset($_SERVER'PATH_INFO'])?$_SERVER'PATH_INFO']:'/';
// Si on a une page dans l'url on la rentre dans $this->page
if(isset($_GET'page'])){
if(is_numeric($_GET'page'])){
if($_GET'page'] > 0){
$this->page = round($_GET'page']);
}
}
}
// Si des données ont été postées ont les entre dans data
if(!empty($_POST)){
$this->data = new stdClass();
foreach($_POST as $k=>$v){
$this->data->$k=$v;
}
}
}
}
et dans ma class controller.php
la fonction request
function request($controller,$action){
$controller .= 'Controller';
require_once ROOT.DS.'controller'.DS.$controller.'.php';
$c = new $controller();
return $c->$action();
}
est se que ca te dérangerai de se retrouver sur l'irc pour faire ceci en direct ?
merci encore pour ton soutien
se qui est bizard c'est quand je fais un var_dump($this);
ca me revoye 2 var_dump differant pour 1 meme ligne ,
comment ca se fais ?
et quand on regarde dans le premiere var_dump il em renvoye bien les information voulue,
la request
et dan sle 2eme vardump il est = a null
???? je comprend pas
je croise les doigt pour une aide précieuse, ca fais 3 jours que je tourne round :(
Coucou,
Désolé, hier soir et aujourd'hui je n'étais pas dispo.
Content que tu ais trouvé ta solution