Laravel 5 我可以要求一对一的关系在拉雷维尔雄辩?

Laravel 5 我可以要求一对一的关系在拉雷维尔雄辩?,laravel-5,eloquent,Laravel 5,Eloquent,我有一个产品类和一个细节类。我想从基本数据sku中分离出大而长的描述,价格只是为了速度。然而,总会有一个长长的描述。因此,商店中的每件商品都会有两条记录 是否有强制或要求两个记录的方法?有没有一种方法可以要求1对1的关系存在?这样才能始终有效 $P = new App\Product(['sku'=>'123','price'=>69]); $P->Detail->html = '<p>Lorem ipsum.</p>'; $P->push(

我有一个产品类和一个细节类。我想从基本数据sku中分离出大而长的描述,价格只是为了速度。然而,总会有一个长长的描述。因此,商店中的每件商品都会有两条记录

是否有强制或要求两个记录的方法?有没有一种方法可以要求1对1的关系存在?这样才能始终有效

$P = new App\Product(['sku'=>'123','price'=>69]);
$P->Detail->html = '<p>Lorem ipsum.</p>';
$P->push();

我的东西都很好。但是如果细节记录还不存在,我会出错。我想知道细节是否可以自动神奇地存在。

要“强制”成对记录存在,您可以做的不多,但是您可以使用getter使描述的检索更安全一些。比如:

class Product extends Model {
    public function detail()
    {
        return $this->hasOne('App\Detail');
    }

    public function getDetailHtml()
    {
        if ($this->detail()->count()) {
            return $this->detail->html;
        }
    }
}