

新規登録画面で画像を登録しようとしたところ、検証で確認し、  
Failed to load resource: the server responded with a status of 404 (Not
Found)このようなエラーが発生しました。  
色々と考えて調べた所、index.bladeとContollerでの受け渡しが出来ていないと思っております。  
ご指摘いただけると幸いです。  
また、試している最中、index.bladeでassetなどを使って指定の画像が反映されることは確認できました。  
課題にある通りユーザーが新規登録画面で自由に選んで画像を入れたいと考えております。  
現在の表記を共有します。追加の情報は対応します。  
宜しくお願いいたします。

[code]

    @extends('layouts.app')
    
    @section('content')
    
    <h1>商品情報一覧画面</h1>
    
    <a href="create">新規登録</a>
    
    <table class="table table-striped">
     <thead>
      <tr>
       <th>id</th>
       <th>商品画像</th>
       <th>商品名</th>
       <th>価格</th>
       <th>在庫数</th>
       <th>メーカー名</th>
      </tr>
     </thead>
     <tbody>
      @foreach ($products as $products)
      <tr>
       <td>{{ $products->id }}</td>
       <td><img src="{{ asset('/storage/img'.$products->img_path)}}" width="25px"></td>
       <td>{{ $products->product_name }}</td>
       <td>{{ $products->price }}</td>
       <td>{{ $products->stock }}</td>
       <td>{{ $products->comment }}</td>
       <td><a href="" class="btn btn-primary">詳細表示</a></td>
       <td><button type="button" class="btn btn-danger">削除</button></td>
      </tr>
      @endforeach
     </tbody>
    <table>
    
[/code]

[code]

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use App\Models\products;
    
    class productsController extends Controller
    {
        public function index()
        {
            $query = Products::query();
            //全件取得
            //$users = $query->get();
            //ページネーション
            $products = $query->orderBy('id','desc')->paginate(10);
            return view('products.index')->with('products',$products);
        }
    
        public function create()
        {
            //createに転送
            return view('products.create');
        }
    
        public function store(Request $request)
        {
            $products = new Products();
    
            $img = $request->file('img_path');
            $path = $img->store('img','public');
    
            //値の登録
            $products->product_name = $request->product_name;
            $products->price = $request->price;
            $products->stock = $request->stock;
            $products->img_path = $request->img_path;
            //保存
            $products->save();
    
            //一覧にリダイレクト
            return redirect('products');
        }
    }
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/vUq3U.png)](https://i.stack.imgur.com/vUq3U.png)


CC BY-SA 4.0
2022-06-25T07:43:36.467
89585
2022-06-27T21:43:30.303
2022-06-25T07:46:10.623
52850
52850
question
php laravel
laravelで画像のアップロードをしたい

[code]

      @foreach ($products as $products)
      <tr>
       <td>{{ $products->id }}</td>
       <td><img src="{{ asset('/storage/img'.$products->img_path)}}" width="25px"></td>
       <td>{{ $products->product_name }}</td>
       <td>{{ $products->price }}</td>
       <td>{{ $products->stock }}</td>
       <td>{{ $products->comment }}</td>
       <td><a href="" class="btn btn-primary">詳細表示</a></td>
       <td><button type="button" class="btn btn-danger">削除</button></td>
      </tr>
      @endforeach
    
[/code]

上記のforeachで`$products as $products`の箇所を`$products as
$product`に修正し、内部の変数名を修正してみてください。

[code]

      @foreach ($products as $product)
      <tr>
       <td>{{ $product->id }}</td>
       <td><img src="{{ asset('/storage/img'.$product->img_path)}}" width="25px"></td>
       <td>{{ $product->product_name }}</td>
       <td>{{ $product->price }}</td>
       <td>{{ $product->stock }}</td>
       <td>{{ $product->comment }}</td>
       <td><a href="" class="btn btn-primary">詳細表示</a></td>
       <td><button type="button" class="btn btn-danger">削除</button></td>
      </tr>
      @endforeach
    
[/code]


CC BY-SA 4.0
2022-06-27T03:29:58.523
89621
2022-06-27T03:29:58.523
38270
89585
answer