Yii Framework Forum: Requête BDD avec jointure - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Requête BDD avec jointure Rate Topic: -----

#1 User is offline   Eydolol 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 11-August 15

Posted 11 August 2015 - 09:11 AM

Bonjour,

Je débute sur YiiFramework et je galère un peu à afficher le résultat d'une requête avec jointure.
Mon but consiste à afficher toutes les tablettes que l'utilisateur possède.

Dans mon modèle j'ai les tables Tablette et Client. Dans la table Tablette il y a une clef étrangère pointant vers le client qui la possède.

Dans mon controller voici mon code:

public function displayTablettesUser()
    {
    	$user_id = Yii::$app->user->getId();

    	$var_tablette = Tablette::find()->where(['ID_fk_client' => 'user_id']);
    
    	// Send toutes les tablettes du client
    	return $this->render('profile', array('tablettes' => $var_tablette));
    }


Et voici mon code pour afficher les tablettes de l'utilisateur courant:

<?php

use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use app\assets\AppAsset;

AppAsset::register ( $this );
echo "hola";
echo "<br/>";
echo "<br/>";

foreach($tablettes as $tablette){
	echo($tablette->code)." : ".$tablette->iDFkClient->firstName."</br>";
}


?>


Seulement lorsque je vais sur ma page j'obtiens cette erreur : Trying to get property of non-object.

J'ai du mal à comprendre via yii sans passer directement par des requêtes SQL.

Merci à vous.
0

#2 User is offline   Louis Gac 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 64
  • Joined: 13-June 14

Posted 13 August 2015 - 06:19 AM

tu dois utiliser les relations.
dans le modèle user, définis une relation hasTablettes. ensuite, si $user est ton utilisateur, tu n'auras qu'à faire $user->tablettes pour accéder à toutes les tablettes de l'utilisateur.
Je te conseille de lire la doc au sujet de l'Active Record, en particulier les paragraphes sur les relations :
http://www.yiiframew...ive-record.html

Sinon, pour ta requête spécifique, tu as oublié le "all" :
 $var_tablette = Tablette::find()->where(['ID_fk_client' => 'user_id'])->all();

http://www.yiiframew...cord.html#find()-detail
Mais vraiment, apprend à utiliser l'ORM de yii, cela te fera gagner beaucoup de temps à l'avenir.
0

#3 User is offline   Eydolol 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 11-August 15

Posted 13 August 2015 - 07:06 AM

Ok je vais lire ça desuite merci beaucoup Louis !
0

#4 User is offline   Louis Gac 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 64
  • Joined: 13-June 14

Posted 13 August 2015 - 07:16 AM

de rien.
Je te conseille de lire toute la doc de yii2 : elle est pas si longue, et ça fait du bien.
essaye de suivre un ou deux tutos complet aussi. au final : tu gagneras du temps
0

#5 User is offline   Angelprina 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 24-April 17

Posted 26 April 2017 - 09:59 PM

Bonjour

Jai une question normalement plutфt simple.

Jai donc une table dans ma BDD avec 2 colonnes "id_rival" et "id_perso"

Je souhaite rйcupйrer le contenue de la table, lassigner а smarty pour ensuite afficher une liste grвce а une boucle dans smarty.

REQUETE :
req = Db::getInstance->ExecuteSELECT FROM mtet_perso;

Dois-je faire un mysql_fetch_array ?
Pourriez vous me faire le code smarty de la boucle qui affiche quelque chose du genre :

<li> id perso : x id_rival : x </li>
<li> id perso : x id_rival : x </li>
<li> id perso : x id_rival : x </li>



Merci beaucoup davance
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users