Size: a a a

Laravel для начинающих

2020 November 17

D

DK in Laravel для начинающих
Vladimir Yefremov
        $user = getAuthUser();
       $orders = Order::where('user_id', $user->id)
           ->where('date_end', '>', Carbon::now()->format('Y-m-d H:i:s'))
           ->where('pay_status', '>', 0)
           ->get()->pluck('id');
       $constructor = ConstructorOrder::whereIn('order_id', $orders)->get();
Формат кстати делать не надо 🙈
источник

D

DK in Laravel для начинающих
И зачем тебе гет аут юзер?
источник

P

PSYTRGLES in Laravel для начинающих
Vladimir Yefremov
        $user = getAuthUser();
       $orders = Order::where('user_id', $user->id)
           ->where('date_end', '>', Carbon::now()->format('Y-m-d H:i:s'))
           ->where('pay_status', '>', 0)
           ->get()->pluck('id');
       $constructor = ConstructorOrder::whereIn('order_id', $orders)->get();
ларкин релейшен сделает тоже самое. в первом запросе тащим все колонки, но плюкаем только id по итогу - не надо так.
источник

VY

Vladimir Yefremov in Laravel для начинающих
DK
Формат кстати делать не надо 🙈
ОК
источник

D

DK in Laravel для начинающих
auth()->user
источник

P

PSYTRGLES in Laravel для начинающих
Ilya AeroWave
Миллион чего?
изображений/файлов
источник

D

DK in Laravel для начинающих
Хелпер вместо фасада, коли не хочешь его дёргать
источник

VY

Vladimir Yefremov in Laravel для начинающих
DK
И зачем тебе гет аут юзер?
это я взял из чужого запроса....
наверно это действительно не нужно
источник

D

DK in Laravel для начинающих
Vladimir Yefremov
        $user = getAuthUser();
       $orders = Order::where('user_id', $user->id)
           ->where('date_end', '>', Carbon::now()->format('Y-m-d H:i:s'))
           ->where('pay_status', '>', 0)
           ->get()->pluck('id');
       $constructor = ConstructorOrder::whereIn('order_id', $orders)->get();
Думаю неплохо..
источник

D

DK in Laravel для начинающих
Если делать 1 запрос то придется джойниться
источник

P

PSYTRGLES in Laravel для начинающих
там контекст опущен, хз как отвечать на этот "опрос"
источник

VY

Vladimir Yefremov in Laravel для начинающих
PSYTRGLES
ларкин релейшен сделает тоже самое. в первом запросе тащим все колонки, но плюкаем только id по итогу - не надо так.
понял
источник

P

PSYTRGLES in Laravel для начинающих
выглядит пока что как 1 запрос с join-ом
источник

AH

Andrey Helldar in Laravel для начинающих
Vladimir Yefremov
        $user = getAuthUser();
       $orders = Order::where('user_id', $user->id)
           ->where('date_end', '>', Carbon::now()->format('Y-m-d H:i:s'))
           ->where('pay_status', '>', 0)
           ->get()->pluck('id');
       $constructor = ConstructorOrder::whereIn('order_id', $orders)->get();
Вынести в релейшен и получишь вид:

// ConstructorOrder
public function actualOrders()
{
   return $this->belongsToMany(Order::class)
       ->where('user_id', Auth::id())
       ->where('date_end', '>', Carbon::now())
       ->where('pay_status', '>', 0);
}

// Your place
$constructor = ConstructorOrder::whereHas('actualOrders')->get();
источник

VY

Vladimir Yefremov in Laravel для начинающих
PSYTRGLES
выглядит пока что как 1 запрос с join-ом
ну, у меня тоже было предположение, что надо улучшить - поэтому и задал "опрос"
источник

P

PSYTRGLES in Laravel для начинающих
если заюзать индексы по итогу не получится, то есть смысл разбить на два, но это если джойны проблему доставили
источник

VY

Vladimir Yefremov in Laravel для начинающих
Andrey Helldar
Вынести в релейшен и получишь вид:

// ConstructorOrder
public function actualOrders()
{
   return $this->belongsToMany(Order::class)
       ->where('user_id', Auth::id())
       ->where('date_end', '>', Carbon::now())
       ->where('pay_status', '>', 0);
}

// Your place
$constructor = ConstructorOrder::whereHas('actualOrders')->get();
круто

спасибо!
источник

P

PSYTRGLES in Laravel для начинающих
:where('actualOrders') - омг что и так можно?
источник

P

PSYTRGLES in Laravel для начинающих
это ж скоуп обычный?
источник

AH

Andrey Helldar in Laravel для начинающих
PSYTRGLES
:where('actualOrders') - омг что и так можно?
Нет) Это я when не теми буквами записал :)
источник