0

我定义了一个销售模型,当我调用Quote::find('1');它时没有返回我的销售对象。我的关系做错了吗?这是表结构:

Quote: id, companyName, stage, saleId

销售:身份证、姓名、电话号码

Class Quote extends Eloquent
{

    protected $with = ['sale'];

    public function sale()
    {
        return $this->hasOne('Sale', 'id');
    }
}

在我的Sale模型中,我定义了:

public function quote()
{
    return $this->belongsTo('Quote');
}
4

2 回答 2

1

我想到了。我的关系倒退了。

Class Quote extends Eloquent
{

    protected $with = ['sale'];

    public function sale()
    {
        return $this->belongsTo('Sale', 'saleId');
    }
}

为了更好地理解它,我认为您可以说在 belongs_to 关系中,外键驻留在您尝试从中创建关系的模型的表中。所以上面的函数可以读作“saleID belongsTo Sale model”。

使用 has_one 时,外键驻留在其他模型的表中。

于 2013-06-12T22:33:19.780 回答
0

尝试这个:

$quote = Quote::with('sale')->find(1);

你应该可以去这样的事情$quote->sale->name

于 2013-06-12T22:10:40.587 回答