>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(unicodestring_containing_the_entire_htlm_doc)
>>> table = soup.find('table', {'class': 'details'})
>>> th = table.find('th', text='Issued on:')
>>> th
<th>Issued on:</th>
>>> td = th.findNext('td')
>>> td
<td>2013-06-13</td>
>>> td.text
u'2013-06-13'
попробуйте это:
$course = Course::where('id', 1)
->with(['my_list' => function($query) {
$query->inRandomOrder();
}])->first();
return $course->my_list;
Попробуйте этот метод:
$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()
, который извлекает все данные и оттуда выбирает случайный строки.
Любой запрос Eloquent возвращает по умолчанию коллекцию , даже для базовых отношений. Поскольку вы работаете с одним, это должно работать:
$course->my_list->random();
Это вернет только один элемент. Если вы хотите больше, вы можете передать аргумент методу random()
, указав количество элементов, которое вы хотите.
Дополнительную информацию можно найти в документации .
Это Object
является коллекцией Laravel. Пожалуйста, обратитесь к документации коллекции. https://laravel.com/docs/5.7/collections#method-random
Вы можете попробовать $course->my_list->random()