2016-06-17 5 views
0
안녕하세요 나는 그 4 개 테이블이

값.Laravel ORM 관계

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; 
} 

하지만 제품 ID 를 얻을 수 파람 모델에서

-> 여기서 ('PRODUCT_ID', '=', $ this-> PRODUCT_ID) (우리가 Product_Param (ID, PRODUCT_ID을 가지고, param_id) 나는

답변

0

이것은 당신이 찾고되지 않을 수 있습니다 무엇.

는 ORM을 작성 도와주세요. Product_Param에서 모든 행을 얻을 수 있지만, 당신이 수에 값 테이블의 value 열을 구현하는 노력이 그 Product_Params 테이블에서 자체 열을 읽은 다음 각 값에 액세스 할 수 있습니다 :

foreach($products->params as $param) { 
    var_dump($param->pivot->value); 
} 
+0

예, 가능합니다. 저는 프로젝트에서 팀 단장입니다.하지만 id_ (미소)로 product_id 열 이름을 바꾸려면 비즈니스가 왜 내가하고 싶은지 이해할 수 없기 때문에 고통 스럽습니다. –