0
你好,我有這4個表:Laravel ORM關係
Products (id, name)
Params (id, name)
Product_Param (id, product_id, param_id)
Values (product_param_id, value)
我可以得到所有產品PARAMS:
public function params() {
return $this->belongsToMany('App\Models\Param', 'product_param')->withPivot('id', 'type1_id', 'type2_id');
}
代碼:
foreach($products->params as $param) {
var_dump($param)
}
現在我需要得到PARAM值。 我寫愚蠢這樣的代碼:
public static function getPPV($product_id, $param_id) {
$value = new \App\Models\ParamValue();
$value->value = NULL;
$value->id = NULL;
$pp = \App\Models\ProductParam::where('product_id','=',$product_id)->where('param_id','=',$param_id)->first();
if (!$pp) return $value;
$ppv = \App\Models\ProductParamValue::where('product_param_id','=',$pp->id)->first();
if (!$ppv) return $value;
$value->value = $ppv->productvalue->value;
$value->id = $ppv->productvalue->id;
return $value;
}
它的工作原理,但我想用用ORM更好的解決方案。帕拉姆型號:
public function val() {
$p = $this->hasOne('App\Models\ProductParam')->orderBy('id','desc')->where('product_id','=',$this->product_id);
$ppv = $p->getResults()->hasOne('App\Models\ProductParamValue');
$val = $ppv->getResults()->belongsTo('App\Models\ParamValue','param_value_id');
return $val;
}
但是在參數型號我不能讓產品編號- >在哪裏( '的product_id', '=',$這個 - > PRODUCT_ID)(我們有Product_Param(ID,PRODUCT_ID, param_id),我得到的所有行Product_Param。
請幫忙寫ORM。
是的,我可以。我是該項目的團隊領導,但如果我想要將product_id重命名爲id(微笑),這是一種痛苦,因爲企業不明白我爲什麼要這樣做。 –