حسین
3 سال پیش توسط حسین مطرح شد
0 پاسخ

ریلشن داینامیک بین چند دیتا بیس در لاراول

سلام
من یه سری دیتا بیس دارم و میخوام بینشون توی laravel ریلشن بزارم
چند تا entity دارم

Trader
Server

هر Trader belongsto Server و توی دیتا بیس اصلیم هست که توی config/database هست اسمش mysql
و اطلاعات Trader توی یه سرور دیگه که اطلاعاتش توی دیتا بیس دیگه هست و مشخصاتش توی entity Server هست
حالا من توی AppserviceProvider config دیتابیس ها رو گذاشتم

foreach ( Server::all() as $server )
        {
            $connection_name = $server->get_report_server_connection_name() ;
            $report_server = $server['report_server'] ;

            Config::set("database.connections.$connection_name", [
                'driver' => 'mysql',
                "host" => $report_server->get('host'),
                "database" => $report_server->get('database'),
                "username" => $report_server->get('username'),
                "password" => $report_server->get('password'),
                "port" => $report_server->get('port'),
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
                'strict'    => false,
            ]) ;

        }

حالا براای relation های 1 * n مشکلی ندارم واقعا هم نمیدونم چرا خوب کار میکنه اینجوری relation رو پیاده کردم

public function report_transactions() : HasMany
    {
        $name = $this->server->get_report_server_connection_name() ;

        return $this->setConnection($name)->hasMany(TraderReportTransaction::class ,"LOGIN","account_number") ;
    }

ولی وقتی همینجوری از رابطه Belongsto استفاده میکنم نمیتونه توی بدنه متد ریلشن $this->server رو بگیره و میگه undefind

چ جوری باید پیاده کنم کسی پیشنهادی داره !؟

@rezajahangir
@websaz
@hesammousavi
@samanzdev


ثبت پرسش جدید

به همدیگه کمک کنیم

به حسین کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

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

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