質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

877閲覧

int型の返り値がほすぃ

maaaaakoto

総合スコア13

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/04/11 19:40

編集2020/04/11 19:46

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初心者ですがどうぞお手柔らかによろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/04/11 22:48

そもそも$idをddするとどうなってますか?コレクションでは?
maaaaakoto

2020/04/13 10:19

すみません、初心者なので,, ddってdumpですか?コレクションとは?
m.ts10806

2020/04/13 11:36

調べてでない内容ではないので調べてください。 あと、Laravelの前にPHPできちんと自らデバッグできるくらいには学習されてからの方が。PHPの基礎なしで手をつけられるフレームワークではないですよ。
guest

回答3

0

php

1 public function createProvisionalImage($image) 2 { 3 // $instance = new ProvisionalImage; 4// $id = ProvisionalImage::latest()->orderBy('id', 'desc')->take(1)->get('id'); 5 $id = User::ProvisionalImage()->orderBy('id', 'desc')->first()->id; 6 $filename = ''; 7 if ($id) { 8 $filename = ($id + 1) . '_' . $image->getClientOriginalName(); 9 } else { 10 $filename = 1 . '_' . $image->getClientOriginalName(); 11 } 12 $filepath = 'public/img/posts/' . $filename; 13 14 (new ProvisionalImage)->create([ 15 'name' => $filename, 16 'path' => $filepath, 17 ]); 18 19 $image->storeAs($filepath, $filename); 20 21 return $id; 22 }

投稿2020/04/12 02:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maaaaakoto

2020/04/13 10:20

エラー出ました! Userっていうモデルは作成してないです。
maaaaakoto

2020/04/13 10:21

わかりにくくてすみません、ProvisionalImageっていうモデルを作成してます
退会済みユーザー

退会済みユーザー

2020/04/13 10:34

タイポだから自分の環境に合わせてなんとかしてくれ
maaaaakoto

2020/04/13 11:54

回答いただきありがとうございます。
guest

0

php

1$id = ProvisionalImage::latest()->orderBy('id', 'desc')->first()->id;

これで行けました!参考したサイトがtake(1)だったのでごっちゃになってました汗

投稿2020/04/13 11:52

maaaaakoto

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

php

1$id = ProvisionalImage::latest()->orderBy('id', 'desc')->first()->id;

これで行けました!参考したサイトがtake(1)だったのでごっちゃになってました汗

投稿2020/04/13 11:43

maaaaakoto

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問