Bonjour,
Je galère à trouver la solution à mon problème. (Je suis sur que c'est tout bête).
Voilà mon code :
$app = App::getInstance();
<?php foreach($app->getTable('User')->skinsWon() as $history) :?>
<h4 class="list-group-item"><?= $history->name; ?></h4>
<?= '<img src='.$history->file.' alt=""/>' ?>
<?php endforeach; ?>
Voilà ma fonction qui se situe dans la classe Table :
public function skinsWon(){
if(isset($_SESSION['auth'])){
$user_id = $_SESSION['auth']->id;
$id = App::getInstance()->getDb()->query('SELECT skins_won.id_users_members FROM skins_won');
$user = $id[0]->id_users_members;
}
if($user === $user_id){
return App::getInstance()->getTable('User')->query(
'SELECT medias.name, medias.file
FROM skins_won
INNER JOIN medias ON skins_won.id_medias = medias.id
WHERE
skins_won.id_users_members=?',[$user_id], true);
}else{
return NULL;
}
}
et voici l'erreur :
require(D:\VirtualHost\test\www/core/Table/App.php): failed to open stream: No such file or directory in D:\VirtualHost\test\www\core\Autoloader.php on line 28
L'autoloader fonctionne correctement car ça marche pour cette fonction qui est elle aussi dans Table :
public function reconnect_from_cookie(){
if(session_status() == PHP_SESSION_NONE){
session_start();
}
if(isset($_COOKIE['remember']) && !isset($_SESSION['auth'])){
$remember_token = $_COOKIE['remember'];
$parts = explode('//', $remember_token);
$user_id = $parts[0];
$usersMembers = App::getInstance()->getTable('User');
$user = $usersMembers->query('SELECT * FROM users_members WHERE id= ?', [$user_id], true);
if($user){
$expected = $user_id . '//'. $user->remember_token . sha1($user_id . 'getmemore');
if($expected === $remember_token){
$_SESSION['auth'] = $user;
setcookie('remember', $remember_token, time() + 60*60*24*7);
}else{
setcookie('remember', NULL, -1);
}
}else{
setcookie('remember', NULL, -1);
}
}
}
Un pti coup de pouce?
Merci
edit :
Quand je mets le code ci-dessous directement dans le page ça fonctionne
$user_id = $_SESSION['auth']->id;
$skins = App::getInstance()->getTable('User')->query(
'SELECT medias.name, medias.file
FROM skins_won
INNER JOIN medias ON skins_won.id_medias = medias.id
WHERE
skins_won.id_users_members=?',[$user_id], true);
Résolu :
Remplacer : App::getInstance()->getDb() par $this
Remplacer : App::getInstance()->getTable('User') par $this.