/** * Performs an INSERT on the database, given a Food or Criteria object. * * @param mixed $criteria Criteria or Food object containing data that is used to create the INSERT statement. * @param ConnectionInterface $con the ConnectionInterface connection to use * @return mixed The new primary key. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doInsert($criteria, ConnectionInterface $con = null) { if (null === $con) { $con = Propel::getServiceContainer()->getWriteConnection(FoodTableMap::DATABASE_NAME); } if ($criteria instanceof Criteria) { $criteria = clone $criteria; // rename for clarity } else { $criteria = $criteria->buildCriteria(); // build Criteria from Food object } if ($criteria->containsKey(FoodTableMap::COL_ID) && $criteria->keyContainsValue(FoodTableMap::COL_ID)) { throw new PropelException('Cannot insert a value for auto-increment primary key (' . FoodTableMap::COL_ID . ')'); } // Set the correct dbName $query = FoodQuery::create()->mergeWith($criteria); // use transaction because $criteria could contain info // for more than one table (I guess, conceivably) return $con->transaction(function () use($con, $query) { return $query->doInsert($con); }); }
/** * Builds a Criteria object containing the primary key for this object. * * Unlike buildCriteria() this method includes the primary key values regardless * of whether or not they have been modified. * * @throws LogicException if no primary key is defined * * @return Criteria The Criteria object containing value(s) for primary key(s). */ public function buildPkeyCriteria() { $criteria = ChildFoodQuery::create(); $criteria->add(FoodTableMap::COL_ID, $this->id); return $criteria; }
/** * @param UploadFoodModel $model * @return RedirectToRouteResult|ViewResult */ public function upload($model) { if ($model->image['name'] == "") { $model->error->message = "You must specify an image file"; return $this->View($model, "UploadFood"); } $imageFile = $model->image['tmp_name']; // if ($model->sound['name'] == "") { // $model->error->message = "You must specify a sound file"; // return $this->View($model, "UploadFood"); // } $soundFile = $model->sound['tmp_name']; $soundExt = pathinfo($model->sound['name'], PATHINFO_EXTENSION); if ($model->food == "") { $model->error->message = "You must specify a food name"; return $this->View($model, "UploadFood"); } $foodName = $model->food; $foodColour = $model->colour; $f = FoodQuery::create()->filterByColour($foodColour)->findOneByName($foodName); if ($f == null) { $f = new \com\readysteadyrainbow\entities\Food(); $f->setName($foodName); $f->setColour($foodColour); $f->setVersion(1); $f->save(); } else { $f->setVersion($f->getVersion() + 1); $f->save(); } $imageDestName = $foodName . ".png"; $soundDestName = $foodName . "." . $soundExt; $p = new ImageProcessor($imageFile); $p->resizeKeepAspect(50); $thumbSource = $p->getFilename(); $thumbDestName = $foodName . "Thumb.jpg"; $p = new ImageProcessor($imageFile); $p->resizeKeepAspect(200); $mainImageSource = $p->getFilename(); global $s3; if (property_exists($model, 'free') && $model->free == "yes") { $base = "freefood/" . $foodColour . "/" . $foodName . "/"; } else { $base = "food/" . $foodColour . "/" . $foodName . "/"; } try { $s3->putObject(['Bucket' => 'appy-little-eaters', 'Key' => $base . $imageDestName, 'Body' => fopen($mainImageSource, 'r'), 'ACL' => 'public-read']); if ($soundFile != "") { $s3->putObject(['Bucket' => 'appy-little-eaters', 'Key' => $base . $soundDestName, 'Body' => fopen($soundFile, 'r'), 'ACL' => 'public-read']); } $s3->putObject(['Bucket' => 'appy-little-eaters', 'Key' => $base . $thumbDestName, 'Body' => fopen($thumbSource, 'r'), 'ACL' => 'public-read']); } catch (S3Exception $e) { $model->error->message = $e->getMessage(); return $this->View($model, "UploadAnimation"); } return $this->RedirectToAction("listFood"); }
/** * Returns a new ChildFoodQuery object. * * @param string $modelAlias The alias of a model in the query * @param Criteria $criteria Optional Criteria to build the query from * * @return ChildFoodQuery */ public static function create($modelAlias = null, Criteria $criteria = null) { if ($criteria instanceof ChildFoodQuery) { return $criteria; } $query = new ChildFoodQuery(); if (null !== $modelAlias) { $query->setModelAlias($modelAlias); } if ($criteria instanceof Criteria) { $query->mergeWith($criteria); } return $query; }