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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

377閲覧

laravel セッション利用

Toshinori23

総合スコア19

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/04/14 07:52

編集2019/04/14 09:37

前提・実現したいこと

laravelでお問い合わせフォームを作成しています。画面転移は、input.blade.php→confirm.blade.phpとなっています。
入力された値をバリデーション後にセッションに格納し、confirm画面で表示させたいのですが、var_dump($request->session()->put($user->name)) がNULLしなってしまい、うまく格納できません。

該当のソースコード

ContactController

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\User; 7 8 9 10class ContactController extends Controller 11{ 12 //display the contact page 13 14 public function index(){ 15 return view("contact.input"); 16 } 17 18 public function post(Request $request){ 19 $this->validate($request, [ 20 'name' => 'required', 21 'email' => 'required|email', 22 ]); 23 24 $user = new User($request->all()); 25 $request->session()->put($user->name); 26 $request->session()->put($user->email); 27 var_dump($request->session()->put($user->name)); 28 return view('contact.confirm', compact('user')); 29 } 30 31 32 public function store(Request $request){ 33 $data = session()->all; 34 return view('contact.complete', compact('data')); 35 } 36} 37

input

1@extends('layouts.default') 2 3@section('title', 'お問い合わせ画面') 4 5@section('content') 6 <h1>お問い合わせフォーム</h1> 7 8 @if ($errors->any()) 9 <ul> 10 @foreach ($errors->all() as $error) 11 <li>{{ $error }}</li> 12 @endforeach 13 </ul> 14 @endif 15 16 <form method="post" action=""> 17 {{ csrf_field() }} 18 <p> 19 <input type="text" name="name" placeholder="enter name" value="{{ old('name') }}"> 20 </p> 21 <p> 22 <input type="text" name="email" placeholder="enter email" value="{{ old('email') }}"> 23 </p> 24 <p> 25 <input type="submit" value="確認する" name="contact"> 26 </p> 27 28 </form> 29@endsection 30

confirm

1@extends('layouts.default') 2 3@section('title', 'お問い合わせ画面') 4 5@section('content') 6 <h1>お問い合わせ画面</h1> 7 8 <form action="{{action('ContactController@store')}}" method="post"> 9 @csrf 10 <p>{{ $user->name }}</p> 11 <p>{{ $user->email }}</p> 12 13 <input type="submit" value="登録する"> 14 {{--@foreach($user->getAttributes() as $key => $value) 15 <input type="hidden" name="{{$key}}" value="{{$value}}"> 16 @endforeach --}} 17 18 19 </form> 20 21@endsection

試したこと

コントローラーで最初は、
$request->session()->put($user->name);
$request->session()->put($user->email);

$request->session()->put($user);
としたところ、
ErrorException (E_WARNING)
Illegal offset type
というエラーを吐きました。

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

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

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

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

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

guest

回答2

0

投稿2019/04/14 08:02

編集2019/04/14 08:16
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.ts10806

2019/04/14 08:07

気づかなかった… Laravelならdd()のほうが間違い起きにくそうですけどね;
退会済みユーザー

退会済みユーザー

2019/04/14 08:08

ver_damp と書いているなら、undefined function が表示されるはずですが、それも書かれていないので、質問文自体がかなり謎。
Toshinori23

2019/04/14 08:44

var_dumpです。そのままコピーせずに打ち込んでたので間違えました。
guest

0

ベストアンサー

putは値のセットなので返り値なさそうに思いますがputしたものをgetで確認してみては?
詳しくはマニュアル

投稿2019/04/14 08:06

m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問