我有两个表公司和供应商。公司ID是供应商表中的外键。假设我在创建供应商时在公司表中添加了一个公司,然后我也选择了公司名称。当我选择公司时,如“ Webdesignbestinclass“然后CompanyID将保存在Suppliers表中。 当我管理供应商的视图时,我也有CompanyID。实际上,我想要根据CompanyID获取公司供应商管理视图的名称?
有些人告诉我如何才能得到它?
答案 0 :(得分:1)
如果您需要具有foreigen的One-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', ),
($ data是实际网格行中模型的平均值。)
答案 1 :(得分:0)
选项1 (如果您更频繁地访问父/子记录,则会更好)
您绝对可以使用关系活动记录,请先检查Yii documentation for relational active record。
如果在创建外键后使用gii创建模型,那么您应该已经自动为您创建了relations()。
然后你可以做
$supplierId = 'your supplier id';
$supplier = Supplier::model()->findByPk($supplierId);
$companyName = $supplier->company->name;
如果您的供应商型号已经传递到您的视图,那么您可以
$model->company->name;
选项2 (更快)
$companyId = Your company ID ;
$company = Company::model()->findByPk($companyId);
$companyName = $company->name;
如果您的供应商型号已经传递到您的视图,那么您可以
$company = Company::model()->findByPk($model->company_id);
$companyName = $company->name;