Идентификатор пользователя фабрики Laravel всегда нулевой - PullRequest
1 голос
/ 07 октября 2019

При попытке получить произвольный идентификатор пользователя на фабрике всегда возвращается null, несмотря на то, что БД содержит 50 пользователей (созданных с помощью фабрики User).

'user_id' => User::all()->random()->id

Я пыталсячтобы отобразить извлеченный ресурс, сделав это:

dd(User::all()->random())

, и результат вполне соответствовал ожидаемому

App\User^ {#num
  #fillable: array:9 []
  ...
  #attributes: array:14 [
    "id" => 25
  ...
  ]
}

, но этот другой метод:

dd( User::all()->random()->id )

всегда возвращает null.

1 Ответ

0 голосов
/ 07 октября 2019

Имейте в виду, что, используя этот метод, вы загружаете все записи в память, а затем выбираете одну случайным образом, чтобы получить ваш случайный объект.

Вы можете улучшить этот запрос одной записи в случайном порядке непосредственно из базы данных:

$randomUser = User::inRandomOrder()->first();
...