Как выбрать строку, если в основной модели присутствует значение столбца или в Eloquent - PullRequest
0 голосов
/ 08 мая 2019

Если есть модель «продукта», у которой есть код поля, который имеет отношение «один ко многим», с таблицей «вариантов», которая также имеет поле кода. Как я могу использовать eloquent для выбора строки, если значение кода любой таблицы имеет какое-либо значение.

Как я мог сделать что-то вроде этого:

   select * from product inner join variation  on product.id = variaction.product_id where product.code = "code" or variation.code = "code".

1 Ответ

0 голосов
/ 09 мая 2019

Считайте, что ваши модели Product и Variation выглядят так:

class Product extends Model
{
    protected $table = 'product';

    public function variation()
    {
        return $this->belongsTo('App\Variation', 'product_id', 'id');
    }
}
class Variation extends Model
{
    protected $table = 'variation';

    public function products()
    {
        return $this->hasMany('App\Product', 'id', 'product_id');
    }
}

Вы можете получить данные с помощью Eloquent следующим образом:

$code = 'code';

Product::where('code', '=', $code)  // for product table
->orWhereHas('variation', function($query) use ($code) {
    $query->where('code', '=', $code);  // for variation table
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...