目的:
今回やりたいことは2つありまして、どちらもできずに困っています。
①Viewから送った値をCookieに保存(永続的)したいということ
②また①でCookieに保存した値をviewに紐づけたいということです。
参考にしたのは下記の2つのサイトです。
参考リンク①
参考リンク②
参考リンクを元にやってみたのですが、なかなかできず困っております。
TestController public function index(Request $request) { $foods = $this->food->all() if(!empty($inputs['squeeze'])) { $response = new Response(view('index')); $response->withCookie(cookie()->forever($inputs['food'])); return $response; } ~省略~ return view('index', compact('foods')); }
index.blade.php //こちらは検索機能の部分で、ここで選ばれる初期値をCookieに保存した値から取得し、初期値として出したい(紐付けたい) {!! Form::open(['route' => 'test', 'method' => 'GET']) !!} <select name="food" id="food"> <option value="">FooD</option> @foreach($foods as $food) <option value="{{ $food->main }}">{{ $food->main}}</option> @endforeach </select> {{ Form::close() }} //こちらで入力した値を上の値に紐付けたい(こちらは検索機能ではなく、選んだ値をCookieに保存したい) {!! Form::open(['route' => 'test', 'method' => 'GET']) !!} <p>Select FooD</p> <div> <select name="food"> <option value="">FooD</option> @foreach($foods as $food) <option value="{{$food->element}}">{{$food->element}}</option> @endforeach {{Form::hidden('squeeze', 'squeeze')}} </select> </div> <button href="#close">x</button> <button>OK</button> {{ Form::close() }}
エラー文
Call to undefined method Illuminate\Support\Facades\Response::withCookie()というエラーが出たので、
Controllerのuse Response;をuse Illuminate\Http\Response;に変更したら、
今度は
Undefined variable: typesというエラーが出ました。
また、Controllerの$response = new Response(view('index'));を$response = new Response();に変えてみたところ、Type error: Too few arguments to function Illuminate\Cookie\CookieJar::forever(),というエラーが出ました。
わからないことが多く、わかりづらい点が多いかもしれませんが、よろしくお願いします
回答3件
あなたの回答
tips
プレビュー