Model view controller 从控制器中的相关表中提取值

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

我第一次使用Yii2框架,试图在一个项目中实现它

我有一个客户下拉列表,我想在客户姓名旁边显示客户的公司

客户表和公司表是相关的。以下是它在客户模型中的外观:

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