Laravel Eloquent: получите значение связанной таблицы вместо внешнего ключа - PullRequest
0 голосов
/ 31 августа 2018

Я использую красноречивый запрос

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

, чтобы получить все продукты и их вариации и другие связанные модели. это коллекция, которую я получаю:

В таких местах, как supplier_id во внешнем массиве и option_id в массиве outerarray>skus>values Мне нужно получить соответствующие значения из (например, 'sipplier_name') столбцов таблицы вместо внешнего ключа.

Ответы [ 3 ]

0 голосов
/ 31 августа 2018
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'];
0 голосов
/ 03 сентября 2018

Спасибо всем. Я добавил оператор объединения в Модель

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

}
0 голосов
/ 31 августа 2018

вы можете использовать append

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...