Yii Framework Forum: Πως Θα Εμφανίσω Τα Αποτελέσματα Του Query Στο View - Yii Framework Forum

Jump to content

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

Πως Θα Εμφανίσω Τα Αποτελέσματα Του Query Στο View

#1 User is offline   antony23 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 09-November 12

Posted 09 November 2012 - 02:09 PM

Καλησπέρα σας είμαι καινούριος στο yii και στο mvc γενικότερα ,θα ήθελα να κάνω μια ερώτηση,έχω δημιουργήσει τον controller μου:
class ViewArticleController extends Controller
{ public $user='';
public function actionIndex()
{
$connection=Yii::app()->db;
$sql="SELECT * FROM article";
$command=$connection->createCommand($sql);

$dataReader=$command->query();
foreach($dataReader as $row){
echo $row['title'];
echo $row['text'];
}
$this->render('index');
}
Έχει δημιουργηθεί και το view ,αλλα μου βγάζει τα αποτελέσματα οχι εκεί που επιθυμω άλλα στο πάνω μέρος της σελιδας .Πως μπορώ να καθορίσω που θα μου εμφανισει το query απο τη βαση στο view μου,και να το μορφοποιήσω ετσι οπως εγώ θέλω.Σας στέλνω ένα screenshot του αποτελέσματος.Ευχαριστώ.

Attached File(s)


0

#2 User is offline   GoofyX 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 174
  • Joined: 15-April 09
  • Location:Thessaloniki, Greece

Posted 09 November 2012 - 02:17 PM

Αντί να εμφανίσεις τα αποτελέσματα στο view, τα εμφανίζεις μέσα στον controller. Γι' αυτό σου εμφανίζει αυτά που βλέπεις πάνω πάνω. Δηλαδή εκείνο το

foreach($dataReader as $row){
 echo $row['title'];
 echo $row['text'];
 }


θα πρέπει να το εφαρμόσεις μέσα στο view σου (index.php) και να το διαγράψεις από το controller action. Προκειμένου όμως στο index.php να έχεις διαθέσιμη τη μεταβλητή $dataReader, θα πρέπει να την περάσεις από τον controller. Αυτό θα γίνει στη γραμμή που καλείς τη render(), δηλαδή:
$this->render('index', array('dataReader'=>$dataReader));


Αυτό είναι το νόημα του MVC. Διαχωρίζεις τον κώδικα της «λογικής» από την εμφάνιση. Το πρώτο το κάνεις στον controller, το δεύτερο στο view.



... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...
0

#3 User is offline   antony23 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 09-November 12

Posted 09 November 2012 - 02:26 PM

Σε ευχαριστώ πολύ,ο τροπος που κάνω το query είναι σωστός ?γιατι διάβασα κάτι και για το query builder?
0

#4 User is offline   GoofyX 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 174
  • Joined: 15-April 09
  • Location:Thessaloniki, Greece

Posted 09 November 2012 - 02:35 PM

Ναι, είναι ένας από τους τρόπους που μπορείς να κάνεις queries. Το δικό σου βέβαια είναι απλό, θα μπορούσε να γίνει με Active Record.

Δηλαδή, να έχεις μια κλάση του τύπου CActiveRecord (να την κληρονομεί) που αντικατοπτρίζει ουσιαστικά τον πίνακα articles στη βάση σου (αυτό είναι το model στο MVC) και να έχεις στον controller σου:

$articles = Article::model()->findAll();


που φυσικά το $artiles θα το περνάς στο view σου κι εκεί θα το χειρίζεσαι με παρόμοιο τρόπο με αυτό που έχεις τώρα.

Ωστόσο, μην τρέξεις να αλλάξεις το query σου έτσι όπως το κάνεις τώρα. Δεν είναι λάθος. Εγώ σου περιέγραψα απλά ένα επιπλέον τρόπο.


... Morpheus: What is "real"? How do you define "real"? If you 're talking about what you can feel, what you can smell, what you can taste and see, then "real" is simply electrical signals interpreted by your brain...
0

#5 User is offline   antony23 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 09-November 12

Posted 09 November 2012 - 02:39 PM

Σε ευχαριστώ και πάλι ήσουν πλήρως κατατοπιστικός.
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