Я пытаюсь сделать предложение where для кода удачи внутри таблицы joindraw, сравнивая с Lucky_fortune_code из таблицы продуктов. Как я могу получить доступ и сделать проверку?
Product::where('status', StatusConstant::PT_ENDED_PUBLISHED)
->where('lucky_fortune_code', '<>', '')
->with(['joindraw' => function ($query){
$query->where('fortune_code', $this->lucky_fortune_code)
->with('user');}])->desc()->get();
Продукт.php
class Product extends Model
{
public function joindraw(){
return $this->hasMany('App\Models\Joindraw');
}
Присоединяйтесь.php
class Joindraw extends Model
{
public function product(){
return $this->belongsTo('App\Models\Product', 'product_id');
}
@GauravGupta Я не могу это понять. Считалось, что это можно сделать, как в модели
попробуйте с product.lucky_fortune_code или просто lucky_fortune_code
попробовал $query->where('fortune_code', 'lucky_fortune_code') и $query->where('fortune_code', 'product.lucky_fortune_code') ничего не возвращает
показать свою модель и отношения между моделями
@ Sohel0415, вот.
@ 1myb вы хотите, чтобы это было в методе построителя запросов?
@GauravGupta Лучше всего было бы в построителе запросов, потому что у меня есть еще несколько методов, сталкивающихся с той же проблемой. Что вы предлагаете?
предоставьте мне необработанный запрос, я преобразую его в форму построителя запросов @1myb






Что вы можете сделать, так это присоединиться:
Product::where('status', StatusConstant::PT_ENDED_PUBLISHED)
->where('lucky_fortune_code', '!=', '')
->join('joindraws', 'joindraws.fortune_code', '=', 'products.lucky_fortune_code')->get();
Кстати, вы также можете опустить второй параметр 'product_id' в отношении belongsTo(), так как это имя столбца уже предполагается по соглашению.
Кроме того, в построителе запросов нет метода desc(). Вместо этого используйте orderBy('lucky_fortune_code', 'desc').
Однако всякий раз, когда вам нужно писать соединения в Laravel, вам следует подумать о структуре ваших отношений, потому что, вероятно, что-то не так.
Я хочу получить доступ к lucky_fortune_code в самой таблице Product. У меня нет предопределенной переменной.
Как я могу присоединиться к таблице joindraws с пользовательской таблицей?
Спасибо за напоминания! Я записал прицел в файл модели для удобства обслуживания. Системе потребуется изменить порядок в зависимости от ситуации.
Я понял! Просто ->with('user') подойдет. Спасибо!!
откуда вы взяли этот "$this->lucky_fortune_code"?