Попробуйте этот метод:
$course = Course::where('id', 1)
->with(['my_list' => function($query) {
$query->inRandomOrder()->first();
}])->first();
return $course->my_list;
этот метод более эффективен, поскольку вы получите только 1 строку из my_list
, не так, как при использовании $course->my_list->random()
, который извлекает все данные и оттуда выбирает случайный строки.
Да, мы используем его в инструменте, чтобы позволить клиентам загрузить журналы, дампы, и т.д. к нашему отделу поддержки клиентов. Вы могли использовать его непосредственно через PInvoke/COMInterop, но я предлагаю взглянуть на SharpBITS.NET, который переносит интерфейс BITS приятно.