Source of file RandomObjectProvider.php
Size: 1,580 Bytes - Last Modified: 2021-12-23T10:02:17+00:00
/var/www/docs.ssmods.com/process/src/code/Providers/RandomObjectProvider.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | <?php namespace Seeder; use Exception; use SS_Log; /** * Class RandomObjectProvider * @package Seeder */ class RandomObjectProvider extends Provider { /** * @var string */ public static $shorthand = 'Random'; /** * @param $field * @param $state * @throws Exception * @returns null */ protected function generateField($field, $state) { throw new Exception('random object provider does not support generating db fields'); } /** * @param $field * @param $state * @return mixed * @throws Exception */ protected function generateOne($field, $state) { $args = $field->options['arguments']; $className = $field->dataType; if (count($args) && !empty($args[0])) { $className = $args[0]; } $object = $className::get()->sort('RAND()')->first(); if (!$object) { SS_Log::log("random for {$className} not found", SS_Log::WARN); } return $object; } /** * @param $field * @param $state * @return mixed * @throws Exception */ protected function generateMany($field, $state) { $args = $field->options['arguments']; $className = $field->dataType; if (count($args) && !empty($args[0])) { $className = $args[0]; } $count = 1; if (count($args) > 1 && !empty($args[1])) { $count = intval($args[1]); } return $className::get()->sort('RAND()')->limit($count); } } |