php
1 /** 2 * 画像仮保存処理 3 * 4 * @param file 5 * @return int 6 * 7 */ 8 public function createProvisionalImage($image) { 9 $instance = new ProvisionalImage; 10 $id = ProvisionalImage::latest()->orderBy('id', 'desc')->take(1)->get('id'); 11 $filename = ''; 12 if ($id == true) { 13 $filename = (int)$id+1 . '_' . $image->getClientOriginalName(); //id_file.png or .jpngになる 14 } else { 15 $filename = 1 . '_' . $image->getClientOriginalName(); //id_file.png or .jpngになる 16 } 17 $filepath = 'public/img/posts/' . $filename; 18 19 // データベースに画像の情報を保存 20 $instance->create([ 21 'name' => $filename, 22 'path' => $filepath, 23 ]); 24 25 $image->storeAs($filepath, $filename); 26 27 return $id; 28 }
Laravelにて画像アップロード機能を追加したくこのcreateProvisionalImageメソッドを作成しました。
口コミとともに投稿する機能のためFormのあるテンプレートと確認のテンプレートの二つを行き来します。
エラー: Object of class Illuminate\Database\Eloquent\Collection could not be converted to int
どのようにすればidの最新を取得できるのでしょうか?
ちなみにdatabaseにはあらかじめ何行かデータをinsertしております。
mysql
1mysql> select * from provisional_images; 2+----+-------------------------------------------------------+------------------------------------------------------------------------+---------------------+---------------------+ 3| id | name | path | created_at | updated_at | 4+----+-------------------------------------------------------+------------------------------------------------------------------------+---------------------+---------------------+ 5| 1 | 1_スクリーンショット 2020-02-10 17.40.22.png | public/img/posts/1_スクリーンショット 2020-02-10 17.40.22.png | 2020-04-11 18:52:38 | 2020-04-11 18:52:38 | 6| 2 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 18:55:34 | 2020-04-11 18:55:34 | 7| 3 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 18:56:40 | 2020-04-11 18:56:40 | 8| 4 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 18:56:43 | 2020-04-11 18:56:43 | 9| 5 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 18:57:47 | 2020-04-11 18:57:47 | 10| 6 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 18:58:02 | 2020-04-11 18:58:02 | 11| 7 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 18:58:39 | 2020-04-11 18:58:39 | 12| 8 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 18:58:55 | 2020-04-11 18:58:55 | 13| 9 | 1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | public/img/posts/1_F3E17F18-7B3E-486C-BB06-52D7ADFE0A09.jpeg | 2020-04-11 19:29:53 | 2020-04-11 19:29:53 | 14+----+-------------------------------------------------------+------------------------------------------------------------------------+---------------------+---------------------+ 159 rows in set (0.00 sec)
laravel初心者ですがどうぞお手柔らかによろしくお願いします。
回答3件
あなたの回答
tips
プレビュー