代码之家  ›  专栏  ›  技术社区  ›  Sai Krishna

Laravel雄辩:获取相关表的值而不是外键

  •  0
  • Sai Krishna  · 技术社区  · 6 年前

    我用的是雄辩的质询

    $apv = $node->products()->with('brand','skus.defaultImage')->get();
    

    获取所有产品及其变体和其他相关模型。这是我的收藏:

    在这样的地方 supplier_id 在外部数组中 和 option_id outerarray>skus>values 我需要从中获取相应值的数组(例如' sipplier_name “)表列,而不仅仅是外键。

    3 回复  |  直到 6 年前
        1
  •  0
  •   Saurabh Mistry    6 年前
    class Product extends Model
    {
         ....
         ....
    
    
         public class supplier()
         {
              return $this->belongsTo('App\Supplier','supplier_id');
         }
    
    } 
    

    现在与供应商取得产品

    $product = Product::where('id',$product_id)->with('supplier')->first();
    echo $supplier_name= $product->supplier['supplier_name'];
    
        2
  •  0
  •   ZeroOne    6 年前

    你可以用 附加物

    class Product extends Model
    {
         ....
         ....
    
         protected $appends = ['supplier_name'];
    
         public function supplier()
         {
              return $this->belongsTo(Supplier::class);
         }
    
         public function getSupplierNameAttribute()
         {
               return $this->supplier()->supplier_name;
         }
    } 
    

    //示例使用

    $product = Product::first();
    $product->supplier_name;
    
        3
  •  0
  •   Sai Krishna    6 年前

    class Variant extends Model
    {
        protected $guarded = ['id'];
    
    
        public function optval()
        {
            $intance = $this->hasMany(OptionValue::class);
             $intance->join('options', 'option_value.option_id', '=', 'options.id')            
                ->get(['option_label','value']);
         return $intance;
        }
    
    }