it-swarm-vi.com

Mục đích của $ this-> get ('Item') trong tệp ví dụ Joomla view.html.php là gì?

Tôi tham khảo đoạn mã dưới đây, được trình bày trong Phát triển thành phần MVC - Ví dụ về chức năng giao diện người dùng :

class HelloWorldViewUpdHelloWorld extends JView
{
    // Overwriting JView display method
    function display($tpl = null) 
    {
            $app            = JFactory::getApplication();
            $params         = $app->getParams();
            $dispatcher = JDispatcher::getInstance();

            // Get some data from the models
            $state          = $this->get('State');
            $item           = $this->get('Item');  //WHAT IS THE PURPOSE OF THIS STATEMENT?
            $this->form     = $this->get('Form');

            // Check for errors.
            if (count($errors = $this->get('Errors'))) 
            {
                    JError::raiseError(500, implode('<br />', $errors));
                    return false;
            }
            // Display the view
            parent::display($tpl);
    }

}

Tôi không hiểu mục đích của tuyên bố này và tôi cũng nhận thấy rằng $item không xuất hiện trong mã trong tệp site/views/updhelloworld/tmpl/default.php trên trang web đó.

Tôi thực sự có cùng một câu hỏi cho view.html.php tệp của com_users/views/registration của mã Joomla 3 (Tôi nghĩ bằng cách so sánh hai ví dụ gửi mẫu tôi có thể trả lời câu hỏi của mình):

    $this->data     = $this->get('Data'); //WHAT IS THE PURPOSE OF THIS STATEMENT? WHAT PRECISELY KIND OF DATA iS MEANT HERE?
    $this->form     = $this->get('Form');
    $this->state    = $this->get('State');
    $this->params   = $this->state->get('params');

Và cũng ở đây $this->data không xuất hiện trong phần liên quan tmpl/default.php tệp (?)

6
Joppo

Trong các lớp mở rộng JView hoặc JViewLegacy, một lệnh gọi đến $this->get() sẽ gọi một hàm trong các lớp mô hình đã đăng ký bắt đầu bằng get. Vì vậy, việc gọi $this->get('Item') sẽ gọi phương thức getItem của mô hình.

5
Michael

$this->get('Item') gọi hàm getItem() trong mô hình và sau đó nó tải dữ liệu từ cơ sở dữ liệu.

$this->get('Data') gọi một phương thức trong mô hình lấy dữ liệu biểu mẫu đăng ký và chuẩn bị sử dụng.

Hãy xem getData in com_users/models/registration.php

3
patterncatcher