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

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

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

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

Q&A

解決済

2回答

2286閲覧

laravel bladeからリダイレクト

Junya42

総合スコア5

Laravel

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

0グッド

0クリップ

投稿2019/08/19 07:41

編集2019/08/19 08:51

前提・実現したいこと

ページをheader locationのようにblade間で移動させたいです。
直前のファンクションは動作しているのですが、このリダイレクトは
反応しないです。

headerのように自動的に移動するようにしたいです。

useは下記のように書いてあります。

use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Redirect; use Illuminate\Http\Request;

試したこと

laravel

1return redirect()->to('tyuubou');

これでできるとあったのですが、ダメでした。

補足情報(FW/ツールのバージョンなど)

なにが必要かよくわからなのでいろいろのせますね
移動前blade

laravel

1<?php 2use Illuminate\Support\Facades\DB; 3use Illuminate\Support\Facades\Redirect; 4use Illuminate\Http\Request; 5session_start(); 6 7//unset($_SESSION[ordertable]); 8//print_r($_SESSION); 9 10switch ($_POST['menu']) { 11 case 'もりそば': 12 $id = 1; 13 break; 14 case 'ざるそば': 15 $id = 2; 16 break; 17 case 'たぬきそば': 18 $id = 3; 19 break; 20 case 'きつねそば': 21 $id = 4; 22 break; 23 case 'かもせいろ': 24 $id = 5; 25 break; 26 case '天ぷらそば': 27 $id = 6; 28 break; 29} 30 31$ordertablen = "ordertable" .$_POST['table']; 32 33array_splice($_SESSION[$ordertablen],$id,1,0); 34$i = 0; 35foreach ($_SESSION[$ordertablen] as $menu => $value) { 36 37 if ($value == 0) { 38 $i += 1; 39 40 if ($i==6) { 41 unset($_SESSION[$ordertablen]); 42 } 43 } 44} 45 46$name = $_POST['menu']; 47switch ($name) { 48 case 'もりそば': 49 $price = 600; 50 break; 51 case 'ざるそば': 52 $price = 700; 53 break; 54 case 'たぬきそば': 55 $price = 750; 56 break; 57 case 'きつねそば': 58 $price = 800; 59 break; 60 case 'かもせいろ': 61 $price = 900; 62 break; 63 case '天ぷらそば': 64 $price = 1300; 65 break; 66} 67 68 69if (ctype_digit($_POST['table'])) { 70 71 try { 72 73 DB::table('uriage')->insert([ 74 'name' => $name, 75 'num' => $_POST['num'], 76 'price' => $price, 77 78 ]); 79 80//ここにいれたい  81return redirect()->to('tyuubou');と書いていました。 82 83 84 } catch (\Exception $e) { 85 exit('ログイン失敗 データが該当しません。'.$e->getMessage()); 86 } 87 88}else { 89 try { 90 $pdo = $dbcon->dbconnect(); 91 $stmt = $pdo->prepare('insert into uriage (name,num,price,cname,demae)value(:name,:num,:price,:cname,1)'); 92 $stmt -> bindParam(':name',$name); 93 $stmt -> bindParam(':num',$_POST['num']); 94 $stmt -> bindParam(':price',$price); 95 $stmt -> bindParam(':cname',$_POST["table"]); 96 $stmt->execute(); 97 98 echo "完了"; 99 100 101 } catch (\Exception $e) { 102 exit('ログイン失敗 データが該当しません。'.$e->getMessage()); 103 } 104} 105 106 107 ?> 108

laravel

1Route::get('/', 'PagesController@getHome')->name("index"); 2Route::post('/thanks', 'PagesController@check')->name("thanks"); 3Route::get('/tyuubou', 'PagesController@tyuubou')->name("tyuubou"); 4Route::post('/uriage', 'PagesController@addsale')->name("uriage"); 5Route::get('/d', 'PagesController@getD')->name("dindex"); 6Route::post('/dmenu', 'PagesController@go')->name("dmenu"); 7Route::get('/dt', 'PagesController@getDt')->name("dindex"); 8

laravel

1 2<?php 3 4namespace App\Http\Controllers; 5 6use Illuminate\Http\Request; 7use Illuminate\Support\Facades\DB; 8use App\menus; 9 10class PagesController extends Controller 11{ 12 // Homeを表示 13 public function getHome(){ 14 $menus = DB::table('menus')->get(); 15 return view('home',['menus' => $menus]); 16 } 17 18 19 public function getD(){ 20 return view('dindex'); 21 } 22 public function getDt(){ 23 return view('dt'); 24 } 25 26 public function tyuubou(){ 27 return view('tyuubou'); 28 } 29 public function check(){ 30 $request = request()->all(); 31 return view('thanks',['request'=>$request]); 32 } 33 34 public function addsale(){ 35 return view('uriage'); 36 } 37 38 public function go (){ 39 return view('dmenu'); 40 } 41} 42

移動先blade

laravel

1 2 3 4 5<html lang="ja" dir="ltr"> 6 <head> 7 <meta charset="utf-8"> 8 <meta name="viewport" content="width=device-width"> 9 <link rel="stylesheet" href="css/style2.css"> 10 <title></title> 11 </head> 12 <body> 13 <article class=""> 14 <header> 15 <h1>オーダー</h1> 16 </header> 17 18 19 <?php session_start(); 20 21 foreach ($_SESSION as $ordertable => $orders) :?> 22 <?php foreach ($orders as $menu => $num): ?> 23 24 <?php if(!0==($num)){ 25 if ($menu !== 'table'&& $menu !=='hito'&& $menu !== '_token') { ?> 26   <section class=""> 27 28 29 <div class="商品名"> 30 <?php echo $menu; ?> 31 </div> 32 33 <form class="" action="{{route('uriage')}}" method="post"> 34 {{csrf_field()}} 35 <a class="個数">個数 36 <select class="select" > 37 <option> <?php echo $num; ?></option> 38 </select> 39 </a> 40 <input type="hidden" name="num" value="<?php echo $num; ?>"> 41 <input type="hidden" name="menu" value="<?php echo $menu; ?>"> 42 <input type="hidden" name="table" value="<?php echo $orders["table"] ?>"> 43 <input type="hidden" name="hito" value="<?php echo $orders["hito"] ?>"> 44 <input type="submit" value="完了"> 45 </form> 46 47 48 <a class="右">テーブル番号 49 <select class="select" > 50      <option><?php echo $orders["table"] ?></option> 51 </select> 52 </a> 53 54 55 <a class="人">人数 56 <select class="select" name="hito" >?> 57 <option><?php echo $orders["hito"] ?></option> 58 </select> 59 </a> 60 61 62 </section> 63 <?php } }?> 64 <?php endforeach;?> 65 <?php endforeach;?> 66 67 <br> 68 <br><br> 69 70 </body> 71</html> 72

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

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

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

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

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

guest

回答2

0

自己解決

フレームワーク使ったら大丈夫そうです。

投稿2019/09/19 01:48

Junya42

総合スコア5

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

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

m.ts10806

2019/09/19 02:58

意味がわからないです。 Laravel時点でフレームワークです。 どう使ったら大丈夫なのでしょうか? 解決とする回答なのであれば具体的に記載してください
guest

0

blade間で移動

それは結局単なるリンクでは。
aタグで画面遷移させれば良いだけの話では?
(リダイレクトは結局GETメソッドです)

現状のコードでアドバイスできることはほぼないので、
再現可能なコードをきちんと全てご提示ください。

投稿2019/08/19 07:44

m.ts10806

総合スコア80850

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

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

Junya42

2019/08/19 08:11

headerのように自動的に移動するようにしたいです。
m.ts10806

2019/08/19 08:14

blade必要ないのでは。 >これでできるとあったのですが、ダメでした。 もどこにどう書いてダメだったのか分かりません。 繰り返しますが、 現状のコードでアドバイスできることはほぼないので、 再現可能なコードをきちんと全てご提示ください。
Junya42

2019/08/19 08:32

のせときました
m.ts10806

2019/08/19 08:37

Laravel ですよね。 一番初めのコード、なぜ全て直に書いているのでしょうか。 session_start書いたり$_SESSION使っていたり$_POSTに直にアクセスしたりpdo で自前でアクセスしたり。 何を参考にLaravelのコードを書いたらこうなるのか不明です。 もし何かの参考書であれば捨てることから始めてください。 それにどこにもbladeが出てきませんが、どういうことでしょうか。
Junya42

2019/08/19 08:44 編集

PHPで書いたものを、 学び始めのlaravelで作り直す練習をしています。 どうかいたらいいかとかはよくわかってないです。 一番初めのようなものは、コントローラーにかくものなのですかね? やっていて、動かなくなったら調べてを繰り返しています。
m.ts10806

2019/08/19 09:01 編集

>PHPで書いたものを、 学び始めのlaravelで作り直す練習をしています。 >やっていて、動かなくなったら調べてを繰り返しています。 単純な焼き直しにはなりませんので、 動作をまずきちんと整理して完全に作り直してください。 ほとんどの記述は使わなくなります。 Laravelに乗せ換えとなると「動かなくなったら調べて」は非常に非効率です。 いずれにしても現状のコードは捨てることになりますので。 >一番初めのようなものは、コントローラーにかくものなのですかね? 何をしたいかによります。 基本的な流れは web.phpにルーティング設定 →設定されたコントローラで処理を記述 →コントローラから呼び出されるビュー(blade)を作成 です。 ※つまり、どういうURLで情報を受け渡して、画面を生成するか先にまとめておく必要がある
m.ts10806

2019/08/19 09:03

いずれにしてもLaravelのドキュメントをきちんと確認して基礎をおさえてください。 https://readouble.com/laravel/ でないと、今回やりたいことまでたどり着けないと思います。 (ちょっとそこだけ教えてと言われてもこのコードからは無理ですね。全部作り直してからでないと)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問