teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2018/08/28 08:48

投稿

退会済みユーザー
answer CHANGED
@@ -22,4 +22,52 @@
22
22
  {!! Form::model($message, ['route' => ['messages.store', $message]]) !!}
23
23
  ```
24
24
 
25
- に書き換えたらどうでしょう?
25
+ に書き換えたらどうでしょう?
26
+
27
+ # 追記2
28
+
29
+ 普段業務でフォームヘルパーを使うことがないので、回答が誤っているのかと思い手元で試しました。
30
+
31
+ `welcome.blade.php`
32
+
33
+ ```
34
+ {!! Form::model($message, ['route' => 'messages.store']) !!}
35
+ {!! Form::label('content', 'メッセージ:') !!}
36
+ {!! Form::text('content') !!}
37
+
38
+ {!! Form::submit('投稿') !!}
39
+ {!! Form::close() !!}
40
+ ```
41
+
42
+ `web.php`
43
+
44
+ ```
45
+ Route::get('/', function () {
46
+ $message = new App\Message();
47
+ return view('welcome', ['message' => $message]);
48
+ });
49
+
50
+ Route::resource('messages', 'MessagesController');
51
+ ```
52
+
53
+
54
+ `MessagesController.php`
55
+
56
+ ```
57
+ public function store() {
58
+ return 'success';
59
+ }
60
+ ```
61
+
62
+ 結果、普通に画面に `success` を表示することができました。
63
+ フォームヘルパーを使う場合、 `{{ csrc_field() }}` は自動で付与されるため不要だったようです。
64
+
65
+ なぜできないのか分からないですね・・・
66
+ 一応、サーバを止めて
67
+
68
+ ```
69
+ composer dump-autoload
70
+ composer update
71
+ ```
72
+
73
+ を実施した上、ブラウザをしっかりリロードしてから再度動作確認してみて下さい。

1

追記

2018/08/28 08:48

投稿

退会済みユーザー
answer CHANGED
@@ -12,4 +12,14 @@
12
12
  のように `@csrf` を使っても同じでしょうか?
13
13
 
14
14
  また、 `routes/web.php` に `messages.store` を定義しているか、
15
- ルーティングに対応するコントローラアクションを作成しているかという点も確認して下さい。
15
+ ルーティングに対応するコントローラアクションを作成しているかという点も確認して下さい。
16
+
17
+ # 追記
18
+
19
+ [http://recipes.laravel.jp/recipe/221](http://recipes.laravel.jp/recipe/221)
20
+
21
+ ```
22
+ {!! Form::model($message, ['route' => ['messages.store', $message]]) !!}
23
+ ```
24
+
25
+ に書き換えたらどうでしょう?