راکت
حل شده

مشکل در ارتباط با دیتابیس در mvc

6 پاسخ

سلام و درود
میخواستم اسم جدول تقریبا شبیه به لاراول از مدل user گرفته بشه اما دقیقا نمیدونم چطور اسم جدول از کلاس مدل یوز به کلاس اصلی خود مدل و از اونجا به دیتابیس بفرستم طوری که اسم جدول به صورت استاتیک نباشه
ممنون از توجهتون

در ضمن من اطلاع ندارم که چطور کدم رو اینجا به اشتراک بزارم که درست نمایش داده بشه

@ali.bayat

ثبت پرسش جدید

پاسخ‌ها

6
Ali Ghaleyan
Ali Ghaleyan
@Serjik

تخصص: برنامه نویس لاراول

بهترین پاسخ

@ali.bayat
خیلی خیلی ممنونم ازتون
اینطوری درستش کردم کار کرد اونطوری که میخواستم شد...

class Models
{
    public $table;

    public function __construct()
    {
        //
    }

    public function __call($method, $parameters)
    {
        return (new Database($this->table))->$method(...$parameters);
    }

    public static function __callStatic($method, $parameters)
    {
        return (new static)->$method(...$parameters);
    }
}
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@Serjik
متوجه سوالتون نشدم.

کدتون رو با ۳ تا بَک‌تیک (`) شروع و تمام کنید.
https://guides.github.com/features/mastering-markdown/

Ali Ghaleyan
Ali Ghaleyan
@Serjik

تخصص: برنامه نویس لاراول

@ali.bayat

<?php
class IndexController extends Controller
{
    public function registerPost()
    {
        $this->model('User');
        User::get();
    }
}
?>

//// user model
<?php
class User extends Models
{
    public $rows=[];
    public $table='user';
}
?>

//// model
<?php
class Models
{
    public $table;
    public static function __callStatic($method , $parameters)
    {
        return (new Database('tableName'))->$method(...$parameters);
    }
}
?>

<?php
class Database
{
    public function __construct($table)
    {
        echo $table;
    }

    public function get()
    {

    }
}
?>

شاید پاسخ شما همین‌جا باشد

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

برای هر مدل اسم جدول دیتابیس رو با پراپرتی table مشخص میکنید . بین کلاس‌ها هم میتونید برای انتقال داده از constructor استفاده کنید.

Ali Ghaleyan
Ali Ghaleyan
@Serjik

تخصص: برنامه نویس لاراول

@ali.bayat
یه همچین چیزی منظورتونه:

class Models
{
    public $table;

    public static $currentTable;

    public function __construct()
    {
        self::$currentTable=$this->table;
    }

    public static function __callStatic($method, $parameters)
    {
        return (new Database(self::$currentTable))->$method(...$parameters);
    }
}

الان این کد کار نکرد...

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@Serjik
خواهش می‌کنم٬ موفق باشید.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام