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

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

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

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

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

Q&A

解決済

2回答

1312閲覧

Laravel: コントローラーから変数を送る方法がわからない。

toyop

総合スコア30

Laravel

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

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

0グッド

0クリップ

投稿2020/10/18 16:55

こんにちは。

Laravelでショッピングカートを作っています。ショップがたくさんあり、各ショップのページには**http://localhost:8000/menu/1**のように、最後尾のidを指定することでアクセスできます。

わからない点なのですが、商品カートのページのurlは**http://localhost:8000/cart**という風になっているため、このページにショップに戻るというリンクをつけたい場合はどうしたらよいのかがわかりません。**/menu/{user}**のような形式にすればいいのはわかるのですが、どこからidを取得すればよいのかがわかりません。コントローラーから送ればよいのかなとは思うのですが、方法がわかりませんでした。

解決法ご存知の方いらっしゃいましたらご教授ください。
よろしくお願いいたします。

以下、コントローラーのコードです。

php

1<?php 2 3namespace App\Http\Controllers; 4 5use App\Product; 6use App\Models\User; 7use Illuminate\Http\Request; 8 9class CartController extends Controller 10{ 11 public function shop($user) 12 { 13 $user = User::findOrFail($user); 14 return view('shop')->withTitle('E-COMMERCE STORE | SHOP')->with(['user' => $user]); 15 16 // $products = Product::all(); 17 // return view('shop')->withTitle('E-COMMERCE STORE | SHOP')->with(['products' => $products]); 18 } 19 20 public function cart() 21 { 22 $cartCollection = \Cart::getContent(); 23 //dd($cartCollection); 24 return view('cart')->withTitle('E-COMMERCE STORE | CART')->with(['cartCollection' => $cartCollection]); 25 } 26 27 public function add(Request $request) 28 { 29 \Cart::add(array( 30 'id' => $request->id, 31 'name' => $request->name, 32 'price' => $request->price, 33 'quantity' => $request->quantity, 34 'attributes' => array( 35 'image' => $request->img, 36 'slug' => $request->slug 37 ) 38 )); 39 return redirect()->route('cart.index')->with('success_msg', 'Item is Added to Cart!'); 40 } 41 42 public function remove(Request $request) 43 { 44 \Cart::remove($request->id); 45 return redirect()->route('cart.index')->with('success_msg', 'Item is removed!'); 46 } 47 48 public function update(Request $request) 49 { 50 if($request->quantity == 0){ 51 \Cart::remove($request->id); 52 }else{ 53 54 \Cart::update( 55 $request->id, 56 array( 57 'quantity' => array( 58 'relative' => false, 59 'value' => $request->quantity 60 ), 61 ) 62 ); 63 } 64 $cartCollection = \Cart::getContent(); 65 $returnHTML = view('update_cart')->with(['cartCollection' => $cartCollection])->render(); 66 return response()->json(array('success' => true, 'html'=>$returnHTML)); 67 68 69 70 } 71 72 public function clear() 73 { 74 \Cart::clear(); 75 return redirect()->route('cart.index')->with('success_msg', 'Car is cleared!'); 76 } 77} 78

参考URL
Create a Shopping Cart with Laravel 6 - Part 1

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

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

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

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

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

guest

回答2

0

自己解決

"{{ url()->previous() }}"で解決いたしました。

投稿2020/12/12 09:19

toyop

総合スコア30

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

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

0

考え方だけ。
設計がどうなっているか分からないのですけど、
「この商品」というのは設計上「どの店舗が所有している商品なのか」が分かるようになっているものと推察されます(というか店舗の売上と関係するので普通そのように設計します)

ということは「商品コード」のように、商品を特定する情報さえあれば、どの店舗かというのも辿れるようになっているはずです。

あとはリンク作るときなり、押した後のコントローラなりで商品コードから店舗情報を特定して、その先に遷移させるだけです。

投稿2020/10/19 00:09

m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問