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

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

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

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

PHP

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

Q&A

解決済

2回答

5386閲覧

Attempt to assign property "path" on null

riki8822

総合スコア1

Laravel

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

PHP

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

0グッド

0クリップ

投稿2021/02/28 17:13

前提・実現したいこと

Laravel 8.29で画像付き掲示板の勉強をしておりました。

https://qiita.com/koru1893/items/1d2f522e20744b03e3ad
上記URLの画像を参考にしていたのですが
Attempt to assign property "path" on null
とのエラーが出てしまいどなたかご教授いただけないでしょうか?

該当のソースコード

public function getImageInput(Request $request){ return view('create_menber.image_input'); } public function postImageConfirm(Request $request){ $post_data = $request->except('imagefile'); $imagefile = $request->file('imagefile'); $temp_path = $imagefile->store('public/temp'); $read_temp_path = str_replace('public/', 'storage/', $temp_path); //追加 $product_name = $post_data['product_name']; $data = array( 'temp_path' => $temp_path, 'read_temp_path' => $read_temp_path, //追加 'product_name' => $product_name, ); $request->session()->put('data', $data); return view('create_menber.image_confirm', compact('data') ); } public function getImageComplete(Request $request) { $data = $request->session()->get('data'); $temp_path = $data['temp_path']; $read_temp_path = $data['read_temp_path']; $filename = str_replace('public/temp/', '', $temp_path); //ファイル名は$temp_pathから"public/temp/"を除いたもの $storage_path = 'public/productimage/'.$filename; //画像を保存するパスは"public/productimage/xxx.jpeg" $request->session()->forget('data'); Storage::move($temp_path, $storage_path); //Storageファサードのmoveメソッドで、第一引数->第二引数へファイルを移動 $read_path = str_replace('public/', 'storage/', $storage_path); //商品一覧画面から画像を読み込むときのパスはstorage/productimage/xxx.jpeg" $product_name = $data['product_name']; $this->productcontroller->path = $read_path; $this->productcontroller->product_name = $product_name; $this->productcontroller->save(); return view('create_menber.image_complete'); }

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

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

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

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

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

guest

回答2

0

ありがとうございました。
アドバイスをいただき解決いたしました。

投稿2021/03/05 04:35

riki8822

総合スコア1

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

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

0

ベストアンサー

productcontroller

がnullなせいです。元記事にもproductcontrollerの実装は書かれていません。

この記事はとりあえず置いておいて
どこに画像のデータ(商品名、ファイルパス)を保存したいか
を考えましょう。
どこがわかれば、次のステップが分かります。

例えばデータベースに保存したいや、セッションに保存したい、テキストファイルに保存したい等です。

投稿2021/02/28 17:20

mikkame

総合スコア5036

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

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

riki8822

2021/02/28 17:48

ご回答ありがとうございます。 データベースに保存したいと思っております。 2021_02_28_160438_create_products_table.php <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateProductsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('products', function (Blueprint $table) { $table->bigIncrements('product_id'); $table->string('path'); $table->string('product_name'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('products'); } } こちらで作成をしておりまして”path”にパスを保存し、画像データはpublic/storage/app/temp/内に保存したいと考えております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問