Bonjour,
mon souci est que j'aimerais bien faire des appels à ma db en par des procédure stockées en sql serveur.
j'ai conçu mon model de telle sorte :
App::uses('AppModel', 'Model');
class TraductionModel extends Model {
public function getTraduction(){
$query = "select * from Translate";
$conn = ConnectionManager::getDataSource('default');$result = sqlsrv_query($conn, $query);
$row = sqlsrv_fetch_array($result);
return $row;
}
}
Mon controleur :
App::uses('Traduction', 'Model');
class TraductionController extends AppController{
public function index(){
$this->loadModel("Traduction");
$this->set('traduction', $this->paginate());
}
}
Se qui me donne le résultat suivant :
Error: Table traductions for model Traduction was not found in datasource default.
Merci d'avance
Oui oui et ma database.php est correcte, car au moment d'installer cakephp, je n'ai pas eu d'erreur .
Oui la connexion à la base c'est bien passé mais visiblement il ne trouve pas la table traductions.
N'y a-t-il pas un préfix sur le table?
L'erreur est pourtant explicite pour le coup ...
Pourquoi tu charges tout à la main ? Le modèle etc... les conventions de cakephp semble respectés
Bonsoir.
Dans ta requête déja, tu demandes la table Translate, si tu ne veux pas qu'il cherche dans une table par défaut, il faut que tu précises :
public $useTable = false;
Sinon je te conseille de bien regarder dans la doc de CakePHP, il y est bien expliqué comment faire pour des requêtes sans utiliser le système standard de CakePHP, par exemple:
$db = $this->getDataSource();
$db->fetchAll(
'SELECT * from users where username = ? AND password = ?',
array('jhon', '12345')
);
$db->fetchAll(
'SELECT * from users where username = :username AND password = :password',
array('username' => 'jhon','password' => '12345')
);
Ensuite, si tu veux récupérer les résultats de ta fonction du modèle Traduction, il faut que tu l'appelles depuis la fonction de ton controller.
$this->Traduction->getTraduction();
ça me mais, exactement la même erreur avec t'as solution :s
$db->fetchAll() C'est bon aussi pour sqlserveur ?
C'est au niveau du controlleur le problème, il ne passe même pas dans le model
class TraductionController extends AppController{
public function index(){
$this->Traduction->getTraduction();
}
}
Si ça te retourne toujours l'erreur comme quoi il ne trouve pas la table traductions dans la base de donnée renseignée dans la configuration par défaut, il n'y a pas 36 raisons à ça.
Bonjour @PuLSor24,
as-tu finalement réussi à exécuter une procédure stocké sql server depuis Cakephp ?
Je rencontre exactement le même problème actuellement et je n'arrive pas à en extrairele résultat.
J'ai créer un post sur le forum : Procédure stocké SQL server & Cakephp
Si tu pouvais passer dessus ce serait top ^^
Merci d'avance