Получить случайный элемент из MySql с помощью Laravel 5.4 - PullRequest
0 голосов
/ 04 июля 2018

Я случайно отображаю элемент из своей тестовой таблицы, так как я могу получить идентификатор этого элемента:

$tests= DB::table('test')->inRandomOrder()->limit(1)->get();

потому что я хочу сравнить его с другим идентификатором

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

->get(); метод, возвращающий экземпляр \Illuminate\Database\Eloquent\Collection. Для получения одного экземпляра используйте метод ->first();. См. Также официальные документы https://laravel.com/docs/5.5/queries#ordering-grouping-limit-and-offset
Например.

$test = DB::table('test')->inRandomOrder()->first();
if ($test->id == $id) {
    // your logic
}
0 голосов
/ 04 июля 2018

->get() возвращает Collection или записи из вашей таблицы test. Вам необходимо использовать цикл для сравнения значения отдельной записи:

$id = 1; // Or whatever you're comparing to
$tests = DB::table('test')->inRandomOrder()->limit(1)->get();
foreach($tests AS $test){ 
  dd($test->id == $id); 
}

Или просто используйте ->first(), чтобы вернуть одну запись из test:

$id = 1;
$test = DB::table('test')->inRandomOrder()->first();
dd($test->id == $id); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...