[Php] كودينيتر: تمرير البيانات من وحدة تحكم لعرض


Answers

وبعبارات بسيطة،

تصبح بيانات $ ['a'] في وحدة التحكم $ a في طريقة العرض. (لن توجد بيانات $ في وجهة نظرك، فسيصبح الفهرس متاحا فقط)

على سبيل المثال

Controller:    
$data['hello']='hellow world';

view:
echo $hello;
Question

أريد أن تمرير $data من وحدة تحكم اسمه poll إلى results_view ولكن أنا الحصول على خطأ متغير غير معرف.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Poll extends CI_Controller {

    public function __construct()
       {
            parent::__construct();
            $this->load->database();
            $this->load->helper('form');
       }

    public function index()
    {

        $this->load->view('poll_view',$data);
    }

    public function vote()
    {
        echo "Voting Successfull";
        $this->db->insert('votes',$_POST);
    }

    public function results()
    {
        echo "These are the results";
        //$query = $this->db->get('votes');
        $data = "hello";
        $this->load->view('results_view', $data);

    }
}

Results_view.php

<html>
<?php echo $data; ?>
</html>



طيب حتى أنا أخيرا حلها. يجب أن يكون لديك نموذج (يساعد كثيرا)

في النموذج الخاص بك تفعل شيئا من هذا القبيل

نموذج

class poll_model extends CI_MODEL {

 function __construct() {
   $this-load->database(); 
 }

 function get_poll {
   $this->db->query("SELECT * FROM table");
   $row = $query->row();

   $obj = array(
    'id' => $row->id
  );
   returb $obj;
 }
}

الآن إذا كان لديك أكثر من معرف يقول اسم الاستطلاع # يمكنك إضافة في مجموعة. الآن في وحدة تحكم تفعل

class Poll extends CI_Controller {

public function __construct()
   {
        parent::__construct();
        $this->load->database();
        $this->load->helper('form');
        $this->load->model('poll_model');
   }

public function index()
{
    $data["a"] = $this->poll_model->get_poll();
    $this->load->view('poll_view',$data);
}

وأخيرا في وضع عرض

<? echo $a["id"]; ?>

هذا هو مساعدة كبيرة. أنا أحسب بها من خلال اختبار وأنها تعمل بالنسبة لي.




في وحدة تحكم:

$data["result"] = $this->login_model->get_login(); // Get array value from DB..

$this->load->view('login-form',$data); // Pass the array to view 

في رؤيه:

print_r($result);  // print the array in view file



تحتاج فقط إلى إنشاء مصفوفة، يمكنك استخدام كودينيتر الحق؟

مثال على وحدة التحكم:

$data['hello'] = "Hello, world";
$this->load->view('results_view', $data);

في صفحة "results_view" يجب عليك فقط:

<?php echo $hello;?>

أوبس: يمكنك إنشاء ن دتس، فقط الالتفات في اسم وجعلها صفيف.

أوبس: لاستخدام البيانات استخدام مفتاح الصفيف مع صدى.