У меня есть объект laravel, где я хотел бы получить его отношения. Однако ключ, который я бы использовал для привязки отношения, может быть одним из двух.
Например, допустим, у меня есть вымышленная «винная упаковка», которая, по сути, представляет собой коробку из трех бутылок вина - три красных, три белых или три розы. «Упаковка» продается как один продукт, но бутылки с вином также можно продавать по отдельности.
Controller.php
$wine_pack = Pack::with('wine')->get();
Wine.php
class Pack
{
public function wine()
{
return $this->belongsTo(Wine::class, 'wine_sku', 'sku');
}
}
Этот код действительно работает. Но в реальном мире белое вино идентифицируется по его «sku». Красное вино и розовое вино идентифицируются по их ref_id.
Я пытаюсь найти способ поиска отдельного вина по его sku, и если ничего не найдено, посмотрите по его ref_id. Например:
class Pack
{
public function wine()
{
$wine = $this->belongsTo(Wine::class, 'wine_sku', 'sku');
if($wine->count() <= 0)
$wine = $this->belongsTo(Wine::class, 'wine_ref_id', 'ref_id');
return $wine;
}
}
Возможно ли это?