🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

CSRF

クロスサイトリクエストフォージェリ (Cross site request forgeries、CSRF)は、 外部Webページから、HTTPリクエストによって、 Webサイトの機能の一部が実行されてしまうWWWにおける攻撃手法です。

Q&A

2回答

1418閲覧

Laravelのoldのoptionを見てselectedを変えたい

tsubasa8770

総合スコア15

Laravel

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

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

CSRF

クロスサイトリクエストフォージェリ (Cross site request forgeries、CSRF)は、 外部Webページから、HTTPリクエストによって、 Webサイトの機能の一部が実行されてしまうWWWにおける攻撃手法です。

0グッド

1クリップ

投稿2019/09/15 12:34

編集2019/09/15 12:55

現在『更新』画面を作成中なのですが、お聞きしたいことがあります。

Laravel Framework 6.0.3

  1. optionがoldに対応して、selectedされない

様々なサイトを見たりして、同じように書いていますが、どうもうまく行きません。

Laravel

1// index.blade.php 2@extends('layouts.app') 3 4@section('content') 5<div class="container"> 6 <div class="row justify-content-center"> 7 <div class="col-md-8"> 8 <div class="card"> 9 <div class="card-header">全ての思い出</div> 10 11 <div class="card-body"> 12 @if (session('status')) 13 <div class="alert alert-success" role="alert"> 14 {{ session('status') }} 15 </div> 16 @endif 17 @foreach ($memories as $memory) 18 <div class="card mb-3"> 19 <div class="card-body"> 20 <h5 class="card-title">{{ $memory->title }}</h5> 21 <p class="card-text"> 22 カテゴリー:<a href="{{ route('memories.index', ['category_id' => $memory->category_id])}}">{{ $memory->category->category_name }}</a> 23 </p> 24 <p class="card-text">{{ $memory->content }}</p> 25 <a href="{{ route('memories.show', $memory->id) }}" class="btn btn-primary">詳細</a> 26 <a href="{{ route('memories.edit', $memory->id) }}" class="btn btn-primary">編集</a> 27 <form action="{{ route('memories.destroy', ['memory' => $memory]) }}" method="POST"> 28 @csrf 29 @method('DELETE') 30 <button type="submit" class="btn btn-danger">削除</button> 31 </form> 32 </div> 33 </div> 34 @endforeach 35 </div> 36 </div> 37 </div> 38 </div> 39</div> 40@endsection 41

laravel

1 2// edit.blade.php 3@extends('layouts.app') 4 5@section('content') 6<div class="container"> 7 <div class="card"> 8 <div class="card-header">思い出</div> 9 <div class="col-6"> 10 <div class="card-body"> 11 @if ($errors->any()) 12 <div class="alert alert-danger"> 13 <ul> 14 @foreach ($errors->all() as $error) 15 <li>{{ $error }}</li> 16 @endforeach 17 </ul> 18 </div> 19 @endif 20 @if (session('status')) 21 <div class="alert alert-success" role="alert"> 22 {{ session('status') }} 23 </div> 24 @endif 25 <div class="card mb-3"> 26 <div class="card-body"> 27 <form method="POST" action="{{ route('memories.update', $memory->id) }}"> 28 @csrf 29 @method('put') 30 <div class="form-group"> 31 <label>いつの思い出ですか?</label> 32// ここら辺です。 33 <select class="form-control" name="category_id"> 34 <option value="1" @if( old('category_id')=='1') selected @endif>中学生</option> 35 <option value="2" @if( old('category_id')=='2') selected @endif>高校生</option> 36 <option value="3" @if( old('category_id')=='3') selected @endif>大学生</option> 37 </select> 38 </div> 39 <div class="form-group"> 40 <label for="exampleInputEmail1">memories title</label> 41 <input type="text" class="form-control" value="{{ old('title') ?: $memory->title }}" name="title"> 42 <small class="form-text text-muted">title</small> 43 </div> 44 <div class="form-group"> 45 <label>memories</label> 46 <textarea class="form-control" rows="3" name="content">{{ old('content') ?: $memory->content }}</textarea> 47 </div> 48 <button type="submit" class="btn btn-light">更新</button> 49 </form> 50 </div> 51 </div> 52 </div> 53 </div> 54 </div> 55</div> 56@endsection 57

laravel

1// MemoryControllor.php 2 3 public function edit($id) 4 { 5 $memory = Memory::find($id); 6 7 return view('memories.edit', [ 8 'memory' => $memory, 9 ]); 10 } 11 12 13 public function update(MemoryRequest $request, $id) 14 { 15 $memory = Memory::find($id); 16 17 if (\Auth::id() === $memory->user_id) { 18 $memory->category_id = $request->category_id; 19 $memory->title = $request->title; 20 $memory->content = $request->content; 21 dd($memory); 22 $memory->save(); 23 } 24 return redirect('/'); 25 } 26

laravel

1// web.php 2 3 4Auth::routes(); 5 6Route::get('/', 'MemoryController@index')->name('memories.index'); 7Route::resource('/memories', 'MemoryController', ['except' => ['index']]); 8

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

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

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

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

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

guest

回答2

0

LGTMなので、何が原因かわかりかねますが
laravel-debugbarを利用することでリクエストごとのセッション変数が
ddなどを使って途中で処理を止めなくても確認できるようになるのでデバッグの助けになるでしょう

投稿2019/09/21 05:38

mikkame

総合スコア5036

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

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

tsubasa8770

2019/09/21 07:17

laravel-debugbar良さそうですね!dd();ばかり使っていたので、調べてみます!
guest

0

selectedを以下の書き方で試してみてはいかがでしょうか。

selected="selected"

投稿2019/10/01 09:38

meshi_s

総合スコア276

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

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

tsubasa8770

2019/10/02 15:19

試しましたができませんでした。 selectedは書けばtrue。書かなければfalseだそうなんですよね。。。 解決しませんね。
meshi_s

2019/10/03 01:18

残念です。 以下の、状態は確認済みでしょうか? ・「old('category_id')」に値が入ってきている。 ・表示(生成)された画面のソースを確認して、「selected」が設定されていない。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問