我有一个Product类和一个Detail类。我想将速度与基本数据(sku,价格)区分开来。但总会有很长的描述。因此商店中的每件商品都会有两条记录。
有没有办法强制或要求两个记录?有没有办法要求存在1对1的关系 - 这样才能始终有效......
$P = new App\Product(['sku'=>'123','price'=>69]);
$P->Detail->html = '<p>Lorem ipsum.</p>';
$P->push();
我的hasOne / belongsTo东西都很好。但如果细节记录还不存在〜我会收到错误。我想知道细节是否可以自动神奇地存在。
答案 0 :(得分:0)
您可以做很多事情来“强制”配对记录存在,但是您可以使用getter来使描述的检索更安全一些。类似的东西:
class Product extends Model {
public function detail()
{
return $this->hasOne('App\Detail');
}
public function getDetailHtml()
{
if ($this->detail()->count()) {
return $this->detail->html;
}
}
}