Как получить случайную строку в объектной переменной в Laravel?

>>> 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'
1
задан MONSTEEEER 17 January 2019 в 06:09
поделиться

4 ответа

попробуйте это:

$course = Course::where('id', 1)
   ->with(['my_list' => function($query) {
       $query->inRandomOrder();
}])->first();
return $course->my_list;
0
ответ дан Jinal Somaiya 17 January 2019 в 06:09
поделиться

Попробуйте этот метод:

$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(), который извлекает все данные и оттуда выбирает случайный строки.

0
ответ дан Kapitan Teemo 17 January 2019 в 06:09
поделиться

Любой запрос Eloquent возвращает по умолчанию коллекцию , даже для базовых отношений. Поскольку вы работаете с одним, это должно работать:

$course->my_list->random(); 

Это вернет только один элемент. Если вы хотите больше, вы можете передать аргумент методу random(), указав количество элементов, которое вы хотите.

Дополнительную информацию можно найти в документации .

0
ответ дан Mozammil 17 January 2019 в 06:09
поделиться

Это Object является коллекцией Laravel. Пожалуйста, обратитесь к документации коллекции. https://laravel.com/docs/5.7/collections#method-random

Вы можете попробовать $course->my_list->random()

0
ответ дан Pablo 17 January 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: