public function handleCreate() { //get file path Input::file('file_img')->move(public_path() . '/img/', Input::file('file_img')->getClientOriginalName()); $book = new Library(); $book->book_name = Input::get('book_name'); $book->book_copy = Input::get('copy'); $book->book_img_name = Input::file('file_img')->getClientOriginalName(); $book->created_by_id = Auth::id(); $book->updated_by_id = Auth::id(); $book->save(); return Redirect::action('AdminLibraryController@index')->with('flash_edit_success', 'Hurray!You have added a new Book'); }
public function testManyToMany() { $library = new Library(); $library->setName('Travis County Reader'); $library->save(); $library2 = new Library(); $library2->setName('LBJ Center'); $library2->save(); $author = new Author(); $author->setName('Haruki Murakami'); $book = new Book(); $book->setTitle('Norwegian Wood'); $book->save(); $book2 = new Book(); $book2->setTitle('Kafka on the Shore'); $book2->save(); $author->addBook($book); $author->addBook($book2); $author->save(); $book2library = new Book2library(); $book2library->setBookId($book->getBookId()); $book2library->setLibraryId($library->getLibraryId()); $book2library->save(); $book2library2 = new Book2library(); $book2library2->setBookId($book2->getBookId()); $book2library2->setLibraryId($library->getLibraryId()); $book2library2->save(); $book2library3 = new Book2library(); $book2library3->setBookId($book->getBookId()); $book2library3->setLibraryId($library2->getLibraryId()); $book2library3->save(); $book2library4 = new Book2library(); $book2library4->setBookId($book2->getBookId()); $book2library4->setLibraryId($library2->getLibraryId()); $book2library4->save(); // now both books should be in both libraries $sameLibrary = Library::constructByKey($library->getLibraryId()); $bookJoinsInTravis = $sameLibrary->getBook2library_Collection(); // $this->dump($bookJoinsInTravis); $this->assertEqual(count($bookJoinsInTravis), 2); // This test is similar to the 4 that are commented out below, but this shows what is different // AND it ignores the creation_datetime and last_modified_datetime differences b/c they are // intentionally not autoloaded after a save. Just manually call load() after save if you want // to get the updated data. $mismatches = $this->getFieldMismatches($bookJoinsInTravis->getPosition(0)->getBook_Object(), $book); // Unset mistmatches that we know to be intentional if (isset($mismatches['creation_datetime'])) { unset($mismatches['creation_datetime']); } if (isset($mismatches['last_modified_datetime'])) { unset($mismatches['last_modified_datetime']); } $this->assertTrue(empty($mismatches), implode("\n", $mismatches)); // these fail because the $book and $book2 don't have some default values set after save like creation_datetime // (which is intentional; call load() after save if you want to get the updated data.) // $this->assertIdentical($bookJoinsInTravis->getPosition(0)->getBook_Object(), $book); // $this->assertIdentical($bookJoinsInTravis->getPosition(1)->getBook_Object(), $book2); $this->assertEqual($bookJoinsInTravis->getPosition(0)->getBook_Object()->getBookId(), $book->getBookId()); $this->assertEqual($bookJoinsInTravis->getPosition(1)->getBook_Object()->getBookId(), $book2->getBookId()); $sameLibrary2 = Library::constructByKey($library2->getLibraryId()); $bookJoinsInLbj = $sameLibrary2->getBook2library_Collection(); $this->assertEqual(count($bookJoinsInLbj), 2); // these fail because the $book and $book2 don't have some default values set after save like creation_datetime // (which is intentional; call load() after save if you want to get the updated data.) // $this->assertIdentical($bookJoinsInLbj->getPosition(0)->getBook_Object(), $book); // $this->assertIdentical($bookJoinsInLbj->getPosition(1)->getBook_Object(), $book2); $this->assertEqual($bookJoinsInLbj->getPosition(0)->getBook_Object()->getBookId(), $book->getBookId()); $this->assertEqual($bookJoinsInLbj->getPosition(1)->getBook_Object()->getBookId(), $book2->getBookId()); }
private function doUpload() { if (!empty($_FILES)) { $file = $_FILES['uploaded']; $file_name = clean_filename($file['name']); // TODO: mettre le dosser d'upload dans des configs $path = '/uploads/' . date('Y') . '/' . date('m'); $full_path = $path . '/' . duplicate_filename(ROOT . '/www/' . $path, $file_name); $to_path = ROOT . '/www/' . $full_path; @mkdir(dirname($to_path), 0755, true); move_uploaded_file($file['tmp_name'], $to_path); if (isset($_POST['name']) && $_POST['name']) { $name = $_POST['name']; } else { $name = InflectionComponent::humanize(preg_replace('~\\.(.*?)$~', '', $file['name'])); } $info = getimagesize($to_path); $File = new Library(); $File['name'] = $name; $File['path'] = $full_path; $File['width'] = $info[0]; $File['height'] = $info[1]; $File['type'] = $info['mime']; $File->save(); return $File['id']; } }