---
title: "How to add the default Model to your Joomla 3 component"
description: "How to add a new model Create the models folder If you haven't already, you will need to create the models folder. This is where our model files will go. In our testing, we created:..."
url: https://www.inmotionhosting.com/support/edu/joomla/joomla-3/add-new-model/
date: 2014-05-22
modified: 2023-06-07
author: "Brad Markle"
categories: ["Joomla", "Joomla 3"]
tags: ["Joomla v3"]
type: post
lang: en
---

# How to add the default Model to your Joomla 3 component

## How to add a new model

1. **Create the models folder** If you haven’t already, you will need to create the **models** folder. This is where our *model* files will go. In our testing, we created: /components/com_helloworld/models
2. **Create <view>.php within models folder** Each component view can have a corresponding model. In this tutorial we are creating a model for our helloworld view, so we will be creating /components/com_helloworld/models/helloworld.php In this file, place the following code: <?php // No direct access to this file defined('_JEXEC') or die('Restricted access'); // import Joomla modelitem library jimport('joomla.application.component.modelitem'); /** * HelloWorld Model */ class HelloWorldModelHelloWorld extends JModelItem { /** * @var string msg */ protected $msg; /** * Get the message * @return string The message to be displayed to the user */ public function getMsg() { if (!isset($this->msg)) { $this->msg = 'This message has been brought to you by the hello world model getMsg function.'; } return $this->msg; } }
3. **Update your view.html.php file to call the getMsg() function** In our components/com_helloworld/views/helloworld/view.html.php file, we originally created the “*Hello World*” message via the following line: $this->msg = 'Hello World'; We will replace this line of code with the following: $this->msg = $this->get('Msg'); The *view.html.php* file will now look like the following: <?php // No direct access to this file defined('_JEXEC') or die('Restricted access'); // import Joomla view library jimport('joomla.application.component.view'); /** * HTML View class for the HelloWorld Component */ class HelloWorldViewHelloWorld extends JViewLegacy { // Overwriting JView display method function display($tpl = null) { // Assign data to the view $this->msg = $this->get('Msg'); // Display the view parent::display($tpl); } }

## Our new model in action

As you can see in the screenshot below, our new model comes into play when our view calls one of the model’s functions.

| View | When our **view** calls | $this->get(‘Msg‘); |
| --- | --- | --- |
| Model | … the following fuction is run in our **model**: | getMsg() |

[![Add a new model in Joomla 3](/support/images/stories/edu/joomla-3/create-component/tracing-the-new-model.png)](/support/images/stories/edu/joomla-3/create-component/tracing-the-new-model.png)
