我有兩張表Companies和Suppliers.Company ID是供應商表中的外鍵。假設我在創建供應商時在公司表中添加了一個公司,然後我也選擇了公司名稱。當我選擇像「Webdesignbestinclass 「那麼CompanyID將保存在Suppliers表中。 當我管理供應商的觀點,然後我也有CompanyID。其實我想獲得公司的名稱在供應商管理視圖對CompanyID?如何在Yii 1.6管理視圖中獲取外鍵的名稱?
有人告訴我如何得到它?
我有兩張表Companies和Suppliers.Company ID是供應商表中的外鍵。假設我在創建供應商時在公司表中添加了一個公司,然後我也選擇了公司名稱。當我選擇像「Webdesignbestinclass 「那麼CompanyID將保存在Suppliers表中。 當我管理供應商的觀點,然後我也有CompanyID。其實我想獲得公司的名稱在供應商管理視圖對CompanyID?如何在Yii 1.6管理視圖中獲取外鍵的名稱?
有人告訴我如何得到它?
如果您需要在 '公司' 的模式已經foreigen
定義關係的一To_One關係爲:
public function relations()
{
'supplier' => array(self::HAS_ONE, 'Supplier', 'company_id'),
}
在 '供應商' 模式爲:
public function relations()
{
'company' => array(self::BELONGS_TO, 'Companies', 'supplier_id'),
}
我應該能夠訪問的字段爲:
$someCompany->supplier->field_x
and
$someSupplier->company->field_y
你可以找到在這個文檔http://www.yiiframework.com/wiki/181/relations-belongs_to-versus-has_one/
使用在您的供應商關係模型函數定義的公司關係取得公司模型中場「名稱」的一些解釋,你應該使用
array('name' => 'CompanyID', 'value' => '$data->company->name',),
($數據在電網的實際行模型的istance。)
選項1(更好,如果你訪問父/子記錄更多)
您肯定可以使用關係活躍記錄,首先檢查Yii documentation for relational active record。
如果您在創建外鍵後使用gii創建模型,那麼您應該已經爲您自動創建了關係()。
然後,你可以做
$supplierId = 'your supplier id';
$supplier = Supplier::model()->findByPk($supplierId);
$companyName = $supplier->company->name;
如果您的供應商模式已經傳遞到你的觀點,那麼你可以做
$model->company->name;
1選項(快)
$companyId = Your company ID ;
$company = Company::model()->findByPk($companyId);
$companyName = $company->name;
如果您供應商模型已經傳遞給你的觀點,那麼你可以做
$company = Company::model()->findByPk($model->company_id);
$companyName = $company->name;
我得到了第一個答案的解決方案。你也是對的。但我使用zii.widgets.grid.CGridView我在zii.widgets.grid.CGridView中顯示公司的名稱。 –
添加一些代碼也在後 –