How To Write Logics In Model In Laravel 9?

In this tutorial, I will give you an example of “How to Write Logics In Model In Laravel 9”, So you can easily apply it to your Laravel 9 application.

So, let’s start from scratch to Move Controller Logic in the Model in Laravel 9 :

Generating Migration with Model :

php artisan make:model Post -m

Migration Structure :


use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
     * Run the migrations.
     * @return void
    public function up()
        Schema::create('posts', function (Blueprint $table) {

     * Reverse the migrations.
     * @return void
    public function down()

Run Migration :

php artisan migrate
Write Logics In Model In Laravel 9

routes\web.php :


use Illuminate\Support\Facades\Route;

use App\Models\Post;

| Web Routes
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!

#Write Logics In Model Example



namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Support\Str;
use Illuminate\Http\Request;

class Post extends Model
    use HasFactory;

    #Create Post
    public function create(){
        return view('post.create');

    #Generate Slug from Title
    public function title() : Attribute {
        return new Attribute(
            set: fn($value) => [
                'title' => $value,
                'slug'  => Str::slug($value)

    #Store Post
    public function store(Request $request){
       $post = new Post();
       $post->title = $request->title;
       $post->content = $request->content;
       return 'success';

resources\views\post\create.blade.php :

move controller logic into model in laravel
<div class="container">
   <div class="row justify-content-center">
      <div class="col-lg-8">
      <div class="main">
      <h3 style="background-color:powderblue;">How to Write Logics In Model in Laravel 9 - Example</h3>
      <form action="{{ route('') }}" method="post" enctype="multipart/form-data">
         <div class="form-group">
            <label for="title">Title<span class="text-danger">*</span></label>
            <input type="text" name="title" class="form-control" required>
         <div class="form-group">
            <label for="content">Content<span class="text-danger">*</span></label>
            <input type="text" name="content" class="form-control" required>
         <div class="form-group">
            <button type="submit" class="btn btn btn-info">Save Post</button>


how to write logics in laravel

In this article, we learned “How to Write Logics In Model In Laravel 9”, I hope this article will help you with your Laravel application Project.

Also Read:- How to Use Service Class In Laravel.

Hi, My name is Gaurav Pandey. I'm a Laravel developer, owner of 8Bityard. I live in Uttarakhand - India and I love to write tutorials and tips that can help other developers. I am a big fan of PHP, Javascript, JQuery, Laravel, WordPress.