مدل ها(Models) در کد ایگنایتر

Share on facebook
Share on google
Share on twitter
Share on linkedin

مدل ها(Models) در کد ایگنایتر

مدل ها(Models) در کد ایگنایتر به منظور ارتباط با بانک اطلاعاتی به کار می رود ، شما تصور کنید وب سایتی فروشگاهی داریدکه نیازدارید محصولات را از بانک اطلاعاتی بگیرد و نشان دهد ، این کدها در قسمت مدل نوشته می شود.

به مثال زیر توجه کنید:

class Shop_model extends CI_Model {


        public $title;

        public $content;

        public $date;


        public function __construct()

        {

                // Call the CI_Model constructor

                parent::__construct();

        }

        public function get_last_ten_entries()

        {

                $query = $this->db->get('entries', 10);

                return $query->result();

        }


        public function insert_entry()

        {

                $this->title    = $_POST['title']; // please read the below note

                $this->content  = $_POST['content'];

                $this->date     = time();

                $this->db->insert('entries', $this);

        }

        public function update_entry()

        {

                $this->title    = $_POST['title'];

                $this->content  = $_POST['content'];

                $this->date     = time();

                $this->db->update('entries', $this, array('id' => $_POST['id']));

        }

}

توجه : این مثال با استفاده از query builder  ساخته شده است.

شرح مثال مدل ها(Models) در کد ایگنایتر :

ابتدا کلاس مدل را همانند کنترلر را می سازیم با این تفاوت که وارث CI_MODEL می باشد و باید در سازنده آن سازنده والد آن را صدا می زنیم.

   public function __construct()

        {

                // Call the CI_Model constructor

                parent::__construct();

        }


و در گام بعد توابع مورد نیاز جهت اعمال مورد نظر را می سازیم.

همچنین توجه داشته باشید فایل شما باید در جای خود ساخته شود به طور مثال فایل بالا در آدرس ریر ساخته می شود.

application/models/Shop_model.php

صدا زدن مدل

جهت صدا زدن مدل ابتدا شما باید کلاس آن را صدا بزنید :

$this->load->model('model_name');

 

و در گام بعدی با استفاده از اسم کلاس مدل تابع مربوطه را صدا بزنید:

$this->model_name->method();

توجه نمایید می توانید در کنترلر خود چندین مدل را صدا بزنید.

پیشنهاد پیرو برای شما :   صفحه بندی (Pagination) در کدایگنایتر

در صورتی که شما بخواهید مدلی را صدا بزنید و نامی منحصز به آن بدهید و در صدا زدن از آن نام استفاده کنید روند زیر را انجام می دهید:

$this->load->model('model_name', 'foobar');


$this->foobar->method();

و در کل می توانید با توجه به مثال زیر کنترلر ها و مدلها را ترکیب و به ویو جهت نمایش ارسال کنید.

class Blog_controller extends CI_Controller {

        public function blog()

        {

                $this->load->model('blog');


                $data['query'] = $this->blog->get_last_ten_entries();

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

        }

}

مدلهای خود بارگزار در مدل ها(Models) در کد ایگنایتر

شما می توانید مدلی را به دلخواه انتخاب نمایید تا در تمامی فایله بارگزاری شود برای این منظور در فایل application/config/autoload.php آرایه model_autoload() را مقدار دهی می کنیم.

مدیر پیرو

مدیر پیرو

نظرتان را بیان نمایید

عضویت در خبر نامه