在用laravel定义模型之间的一对一关系时,我们会说:
class Model1 extends Model
{
public function model2()
{
return $this->hasOne('App\Model2');
}
}
对于Model2,我们将使用belongsTo('App\Model1')
。
在如何决定我们将使用每个函数的哪一个端有逻辑吗?
发布于 2015-11-10 08:01:43
两者的区别在于外键将驻留在数据库中。belongsTo函数应该属于表中包含外键的模型,而hasOne应该属于由来自另一个表的外键引用的模型。
这两种方法都可以使用,但您应该为将来可能使用您的系统的其他开发人员维护可靠的编码实践。此外,如果外键级联删除,则这将变得至关重要。如果删除model1,model2 belongsTo model1也应该删除吗?
https://stackoverflow.com/questions/33634072
复制