Cloud9でlaravelを用いて作ったアプリケーションをHerokuにデプロイしたが、テーブルだけおかしなことになってしまい困っています。テーブルには、あるAPIから取得したデータを登録しておいたのですが、Herokuの方で確認してみると、テーブル自体はあるのに、その中に何のデータも登録されていない空の状態になっていました。一応、Cloud9の方も確認したのですが、そちらの方はきちんとデータが登録されている状態でした。
HerokuのテーブルをCloud9のテーブルと同じようにデータが登録されている状態にしたいのですがどうしたらいいのでしょうか?
--追記--
テーブルには、あるAPIから取得したデータを登録しておいたのですが どのような方法で登録しましたか?
cloud9のController.phpで以下のようにコードを記述してレコードに登録しました
//APIの取得と登録 public function bookapi() { $client = new \GuzzleHttp\Client(); //本のタイトルや筆者名等のAPI $url = 'https://iss.ndl.go.jp/api/opensearch?dpid=aozora'; $response = $client->request( 'GET', $url, ); $xml=$response->getBody()->getContents(); $obj= simplexml_load_string($xml); $booklist= json_encode($obj); $booklist= json_decode($booklist,true) $books=$booklist['channel']['item']; //楽天ブックス書籍検索 $rakutenn_url = 'https://app.rakuten.co.jp/services/api/BooksBook/Search/20170404?applicationId=1070968634966804263'; $rakutenn_response = $client->request( 'GET', $rakutenn_url, ); $rakutenn_json = $rakutenn_response->getBody()->getContents(); $rakutenn_booklist= json_decode($rakutenn_json,true); $rakutenn_books = $rakutenn_booklist['Items']; //2つのAPIの情報を一つにまとめる $bookbook = []; for($i=0;$i<count($books);$i++) { $books[$i] += ["isbn" => null]; $books[$i] += ["booksGenreId" => null]; $books[$i] += ["publisherName" => null]; $books[$i] += ["largeImageUrl" => null]; array_push($bookbook,$books[$i]); } for($i=0;$i<count($rakutenn_books);$i++) { $rakutenn_books[$i]['Item'] += ["guid" => null]; $rakutenn_books[$i]['Item'] += ["link" => null]; $rakutenn_books[$i]['Item'] += ["category" => null]; array_push($bookbook,$rakutenn_books[$i]['Item']); } //これが登録 foreach($bookbook as $item) { Book::create([ 'title'=>$item['title'], 'link'=>$item['link'], 'author'=>$item['author'], 'category'=>$item['category'], 'guid'=>$item['guid'], 'isbn'=>$item['isbn'], 'booksGenreId'=>$item['booksGenreId'], 'publisherName'=>$item['publisherName'], 'largeImageUrl'=>$item['largeImageUrl']]); } }
あなたの回答
tips
プレビュー