Ali Ghaleyan
6 سال پیش توسط Ali Ghaleyan مطرح شد
6 پاسخ

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

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

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

@ali.bayat


ثبت پرسش جدید
Ali Ghaleyan
تخصص : برنامه نویس لاراول
@Serjik 6 سال پیش مطرح شد
0

@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 6 سال پیش مطرح شد
0

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

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


Ali Ghaleyan
تخصص : برنامه نویس لاراول
@Serjik 6 سال پیش مطرح شد
0

@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 6 سال پیش مطرح شد
1

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


Ali Ghaleyan
تخصص : برنامه نویس لاراول
@Serjik 6 سال پیش آپدیت شد
0

@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 Ghaleyan
تخصص : برنامه نویس لاراول
@Serjik 6 سال پیش مطرح شد
0

@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 6 سال پیش مطرح شد
1

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


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

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