我有一個使用多個表具有相同結構的Yii2模型。表名將根據用戶登錄而改變,表名是非常獨特的,並取決於用戶名。我將如何動態地將此表名稱分配給模型?我迄今已完成此操作。Yii2中的動態表名
在我的模型:
protected $table;
public function __construct($table)
{
$this->table='custom_risk_assignment_table';//logic to obtain the table name goes here
}
public static function tableName()
{
return $this->table;
}
但這樣做會導致錯誤Using $this when not in object context
因爲function tableName()
是static
功能。
我該怎麼做呢?任何幫助表示感謝。提前感謝!
編輯:詳細的圖片
說我已經從公司ABC的用戶。我的應用程序中有很多進程,說PQR就是其中之一。如果來自ABC公司的用戶登錄並選擇進程PQR,則需要在我的數據庫中創建表ABC_PQR(如果不存在),或者在已經創建的表中加載表。我需要將這個表名稱放入我的模型中。同樣,用戶和許多進程也在那裏。管理數據庫的最佳方法是什麼?
根據某些運行時檢查在同一個數據庫中使用不同的表可能是實現此目的最糟糕的方式。我們在談論多少個不同的表名? – Jon
@Jon單個表中的所有數據都需要更多的時間來查詢!我爲單個用戶提供了超過12個自定義表格。 –
你有沒有考慮過單獨的數據庫?無論如何,這不是你應該樂意做的事情的最佳論據是你將面臨的問題的數量。 – Jon