Model view controller 从控制器中的相关表中提取值
我第一次使用Yii2框架,试图在一个项目中实现它 我有一个客户下拉列表,我想在客户姓名旁边显示客户的公司 客户表和公司表是相关的。以下是它在客户模型中的外观:Model view controller 从控制器中的相关表中提取值,model-view-controller,foreign-keys,yii2,Model View Controller,Foreign Keys,Yii2,我第一次使用Yii2框架,试图在一个项目中实现它 我有一个客户下拉列表,我想在客户姓名旁边显示客户的公司 客户表和公司表是相关的。以下是它在客户模型中的外观: public function getCompany() { return $this->hasOne(Company::className(), ['id' => 'company_id']); } public function getfullInfo() { return $th
public function getCompany()
{
return $this->hasOne(Company::className(), ['id' => 'company_id']);
}
public function getfullInfo()
{
return $this->name.' '.$this->phone.' '.$this->email;
}
所以现在我正在形成一个包含客户姓名、电子邮件、电话和公司名称的下拉列表。姓名、电子邮件和电话属于一张桌子,所以把它们放在一起没有问题。以下是它在客户模型中的外观:
public function getCompany()
{
return $this->hasOne(Company::className(), ['id' => 'company_id']);
}
public function getfullInfo()
{
return $this->name.' '.$this->phone.' '.$this->email;
}
我真的不理解这个框架的逻辑。如何在上述代码中输入公司名称
谢谢大家。以下是正确的代码:
public function getfullInfo()
{
return $this->name.' '.$this->phone.' '.$this->email.' '.$this->company['name'];
}
这太简单了,我在这上面浪费了太多时间。添加“$This->company->name”会出现错误“尝试获取非对象的属性”尝试使用关系名称。可能会有帮助。我认为
$this->company->name
的问题在于有时$this->company
存在(是一个对象),有时它不存在,在这种情况下hasOne()
返回false
。