مدل ها

📄 مستندات ساخت مدل‌ها در Flare Framework

🧩 مدل‌ها (Models) در فلر

در فریمورک فلر، مدل‌ها مسئول تعامل با پایگاه داده هستند. آن‌ها مستقیماً با جدول‌های دیتابیس کار می‌کنند و عملیات CRUD را مدیریت می‌کنند.


🗂️ مسیر پیشنهادی مدل‌ها:

 
Flare/ 
└── Models/ 
└── UsersModel.php

✅ ساختار پایه یک مدل

 
<?php
namespace Models;

class ClassName
{
    protected $db;

    public function __construct()
    {
        global $db;
        $this->db = $db;
    }

    // متدهای مربوط به این مدل
}
  • global $db: استفاده از اتصال مشترک پایگاه داده

  • $this->db: نگهداری اتصال برای متدهای داخلی


✍️ مثال عملی: UsersModel

 
<?php
namespace Models;

class UsersModel
{
    protected $db;

    public function __construct()
    {
        global $db;
        $this->db = $db;
    }

📌 متدها:

🔍 findByEmail($email)

جستجوی کاربر بر اساس ایمیل

public function findByEmail($email)
{
    $this->db->where('email', $email);
    return $this->db->getOne('users');
}

🔐 saveRememberToken($userId, $token)

ذخیره توکن ورود خودکار (remember me)

public function saveRememberToken($userId, $token)
{
    $this->db->where('id', $userId);
    return $this->db->update('users', ['remember_token' => $token]);
}

findByRememberToken($token)

بازیابی کاربر بر اساس remember_token

 
public function findByRememberToken($token)
{
    $this->db->where('remember_token', $token);
    return $this->db->getOne('users');
}

📥 insert($data)

درج یک رکورد جدید در جدول users

 
public function insert($data)
{
    return $this->db->insert('users', $data);
}

✏️ update($id, $data)

بروزرسانی اطلاعات کاربر

 
public function update($id, $data)
{
    $this->db->where('id', $id);
    return $this->db->update('users', $data);
}

🗑️ delete($id)

حذف یک کاربر با شناسه مشخص

 
public function delete($id)
{
    $this->db->where('id', $id);
    return $this->db->delete('users');
}

📋 getAll()

دریافت لیست همه کاربران به ترتیب نزولی ID

 
public function getAll()
{
    return $this->db->orderBy("id", "desc")->get("users");
}

🔗 وابستگی‌ها


📝 توصیه‌ها

  • هر مدل باید فقط با یک جدول در دیتابیس کار کند.

  • برای هر جدول، یک کلاس مدل مجزا بسازید (مانند: PostsModel, OrdersModel, ...)

  • در کنترلرها از این مدل‌ها استفاده کنید تا منطق برنامه تمیز باقی بماند.


📌 استفاده در کنترلر

 
use Models\UsersModel;

$userModel = new UsersModel();
$user = $userModel->findByEmail('test@example.com');