Laravel красноречивый запрос на сборку - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу написать запрос, используя структуру Laravel Eloquent. Я хочу запросить эти значения после ввода минимальных и максимальных значений. У меня есть таблица продуктов. Столбец товарной таблицы со скидкой (%) и ценой. Я хочу получить минимальное и максимальное значение в зависимости от дисконтированной стоимости продукта.

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

$products->where('price', '<=', $max)
  ->where('price', '>=', $min)
  ->orderByDesc('id')
  ->paginate(9);

Миграция продукта:

Schema::create('products', function (Blueprint $table) {
  $table->bigIncrements('id');
  $table->unsignedBigInteger('upper_category_id')->index();
  $table->unsignedBigInteger('category_id')->index();
  $table->unsignedBigInteger('user_id')->index();
  $table->string('name');
  $table->longText('text');
  $table->float('price')->index();
  $table->integer('stock');
  $table->float('discount');
  $table->timestamps();
});

Заранее большое спасибо.

1 Ответ

2 голосов
/ 02 ноября 2019

Если я правильно понял ваш вопрос, вы можете попробовать сделать это так:

$products->where(DB::raw('price - price * discount'), '<=', $max)
  ->where(DB::raw('price - price * discount'), '>=', $min)
  ->orderByDesc('id')
  ->paginate(9);

https://laravel.com/docs/5.8/queries#raw-expressions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...