bg_image
header

View

The View in Model-View-Controller (MVC)

The View is the presentation layer in the MVC architecture. It is responsible for displaying data from the Model in a user-friendly format.


Main Responsibilities of the View

Displaying Data: Shows information from the Model (e.g., a list of blog posts).
Reacting to User Interactions: Accepts user input and sends it to the Controller.
Formatting & Layout: Structures content using HTML, CSS, or templating engines (e.g., Laravel Blade or Twig).
Avoiding Business Logic: Contains only presentation logic, not data processing.


How Does the View Work in MVC?

  1. The user sends a request (e.g., "Show all blog posts").
  2. The Controller calls the Model to retrieve the data.
  3. The Model returns the required data.
  4. The View receives the data from the Controller and displays it.

Example: Blog System (View in Laravel Blade)

<!-- resources/views/blog/index.blade.php -->
@extends('layouts.app')

@section('content')
    <h1>Blog Posts</h1>
    @foreach ($posts as $post)
        <div>
            <h2>{{ $post->title }}</h2>
            <p>{{ $post->content }}</p>
        </div>
    @endforeach
@endsection

🔹 @foreach: Loops through the list of blog posts and displays them.
🔹 {{ $post->title }}: Outputs the title of the blog post.


Conclusion

✔ The View is responsible for presentation but does not process data.
✔ It ensures a clear separation between logic and display.
✔ Using templates or frontend technologies (e.g., Vue.js, React), the View can be dynamically rendered.

 


Model

The Model is the data and logic layer in the MVC architecture. It manages the application's data and ensures that it is correctly stored, retrieved, and processed.


Main Responsibilities of the Model

Data Management: Stores and handles data, often in a database.
Business Logic: Contains rules and calculations (e.g., discount calculation for orders).
Data Validation: Checks if input is correct (e.g., if an email address is valid).
Database Communication: Performs CRUD operations (Create, Read, Update, Delete).


How Does the Model Work in MVC?

  1. The user sends a request (e.g., "Show all blog posts").
  2. The Controller processes the request and calls the Model.
  3. The Model queries the database and returns the data.
  4. The Controller passes the data to the View for display.

Example: Blog System (Model in Laravel)

class BlogPost extends Model {
    protected $fillable = ['title', 'content']; // Erlaubte Felder für Massenverarbeitung

    // Beziehung: Ein Blogpost gehört zu einem Benutzer
    public function user() {
        return $this->belongsTo(User::class);
    }
}

🔹 fillable: Specifies which fields can be saved.
🔹 belongsTo(User::class): Indicates that each blog post belongs to a user.


Conclusion

✔ The Model handles all data and business logic of the application.
✔ It ensures a clear separation between data and presentation.
Changes to the data structure only need to be made in the Model, not throughout the entire application.

 


Controller

A Controller is a key component in the Model-View-Controller (MVC) architecture. It acts as an intermediary between the user interface (View) and the business logic or data (Model).

Functions of a Controller

  1. Handling User Input

    • The controller receives requests (e.g., from a web form or an API call).
  2. Processing the Request

    • It analyzes the input and decides which action to take.
    • If necessary, it validates the data.
  3. Interacting with the Model

    • The controller forwards the request to the model to fetch, update, or store data.
  4. Updating the View

    • Once the model processes the request, the controller passes the data to the view.
    • The view is then updated with the new information.

Example: Blog System

Suppose a user wants to create a new blog post:

  1. The user fills out a form and clicks "Save" (input to the controller).
  2. The controller receives the request, validates the input, and sends it to the model.
  3. The model stores the post in the database.
  4. The controller retrieves the updated list of posts and sends it to the view.
  5. The view displays the new blog post.

Example Code in PHP (Laravel)

class BlogController extends Controller {
    public function store(Request $request) {
        // Validierung der Benutzereingabe
        $request->validate([
            'title' => 'required|max:255',
            'content' => 'required',
        ]);

        // Neues Blog-Post-Model erstellen und speichern
        BlogPost::create([
            'title' => $request->input('title'),
            'content' => $request->input('content'),
        ]);

        // Weiterleitung zur Blog-Übersicht
        return redirect()->route('blog.index')->with('success', 'Post erstellt!');
    }
}

Conclusion

✔ A controller manages the flow of an application and separates business logic from presentation.
✔ It ensures clean code structure, as each component (Model, View, Controller) has a specific responsibility.
✔ Modern frameworks like Laravel, Django, or ASP.NET often include built-in routing mechanisms that automatically direct requests to the appropriate controllers.