/** * Run the database seeds. * * @return void */ public function run() { $faker = Faker\Factory::create(); for ($i = 0; $i < 100; $i++) { $type = $faker->numberBetween(1, 3); switch ($type) { case 1: $name = ucfirst($faker->word); break; case 2: case 3: $name = ucwords(implode(' ', $faker->words(3))); break; } $item = Item::create(['user_id' => $faker->numberBetween(1, 2), 'type_id' => $type, 'product_id' => $faker->numberBetween(1, 3), 'name' => $name, 'desc' => $faker->paragraph(10), 'slug' => '']); // Create a new meta model $metadata = new ItemMetadata(); $metadata->fill(['item_id' => $item->id, 'installation' => implode("\r\n\r\n", $faker->paragraphs(3)), 'history' => $faker->paragraph])->save(); // Determine how many times we're looping through ratings $ratingsLoop = $faker->numberBetween(1, 10); for ($j = 1; $j < $ratingsLoop; $j++) { ItemRating::create(['user_id' => $faker->numberBetween(1, 50), 'item_id' => $item->id, 'rating' => $faker->numberBetween(1, 5)]); } // Update the total rating $item->updateRating(); // Determine how many times we're looping through comments $commentsLoop = $faker->numberBetween(1, 10); for ($c = 1; $c < $commentsLoop; $c++) { Comment::create(['user_id' => $faker->numberBetween(1, 50), 'item_id' => $item->id, 'content' => $faker->paragraph]); } // Determine how many times we're looping through files $filesLoop = $faker->numberBetween(1, 10); for ($f = 1; $f < $filesLoop; $f++) { $version = $faker->randomFloat(1, 1, 9); $filename = "{$item->user->username}/{$item->slug}-{$version}.zip"; ItemFile::create(['item_id' => $item->id, 'filename' => $filename, 'version' => $version, 'size' => $faker->numberBetween(1, 999999)]); } $item->update(['version' => $version]); // Determine how many times we're looping through orders $ordersLoop = $faker->numberBetween(0, 100); for ($o = 1; $o < $ordersLoop; $o++) { Order::create(['user_id' => $faker->numberBetween(1, 50), 'item_id' => $item->id, 'file_id' => $faker->numberBetween(1, 400)]); } } }
public function executeRate() { if ($this->getRequest()->isXmlHttpRequest()) { $rating = $this->getRequestParameter('rating'); $item_id = $this->getRequestParameter('it'); if ($rating > 5) { $rating = 5; } if ($rating < 0) { $rating = 0; } $this->user = $this->getUser()->getRaykuUser(); $c = new Criteria(); $c->add(ItemRatingPeer::ITEM_ID, $item_id); $c->add(ItemRatingPeer::USER_ID, $this->user->getId()); $item_rating = ItemRatingPeer::doSelect($c); if ($item_rating) { return $this->renderText('already'); } else { $item_rating = new ItemRating(); $item_rating->setUserId($this->user->getId()); $item_rating->setItemId($item_id); $item_rating->setRating($rating); $item_rating->save(); return $this->renderText('success'); } return $this->renderText('fail'); } }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param ItemRating $value A ItemRating object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(ItemRating $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null self::$instances[$key] = $obj; } }