回答編集履歴

5 補足追加

shiroyuki

shiroyuki score 169

2017/05/02 18:13  投稿

Q1.コントローラで送られてきたデータを使う場合は、Request $requestを使うと良いと思います。
Q2. view側でpostされたデータを使用する場合にはoldを使用すると便利です。
 
route  
```php  
Route::get('hoge'        , 'HogeController@form');  
Route::post('hoge/confirm', 'HogeController@confirm');  
```  
コントローラ側
```php
class HogeController extends Controller
{
   public function form()
   {
       return view('hoge.form');
   }
   public function confirm(Request $request)
   {
       $input = $request->all(); // $inputにpostのデータ入ってる
       return view('hoge.confirm');
   }
}
```
view側(hoge.form)
```html
<form method="post" action="hoge/confirm">
 名前:<input type="text" name="name" value="{{old('name','東京')}}" />
 住所:<input type="text" name="address" value="{{old('address','')}}" />
 <input type="submit" />
</form>
```
view側(hoge.confirm)
```html
<div>
 <div>名前:<input type="text" name="name" value="{{old('name')}}" /></div>
 <div>住所:<input type="text" name="address" value="{{old('address')}}" /></div>
</div>
```
formのデータの入力チェックをしたい場合にはconfirmの引数のRequestを自分で作成したRequestクラスに書き換えれば対応したRequestクラスのruleが適用されてNGの場合には自動でindexに戻されるようになります。
Requestクラス内でエラーメッセージなどはまとめて管理できるのでコントローラ側はスッキリします。
```php
   public function confirm(Requests\MyRequest $request)
   {
       return view('hoge.confirm');
   }
```
↓リクエストクラスはこれで生成されます
php artisan make:request MyRequest
```php
class MyRequest extends Request
{
   /**
    * Determine if the user is authorized to make this request.
    *
    * @return bool
    */
   public function authorize()
   {
       // return (\Auth::check());
       return false;
   }
   /**
    * Get the validation rules that apply to the request.
    *
    * @return array
    */
   public function rules()
   {
       return [
           'name'   => 'required', // 名前必須
           'address' => '',        // 住所任意
       ];
   }
}
```
4 ソースコード修正

shiroyuki

shiroyuki score 169

2017/05/02 18:11  投稿

Q1.コントローラで送られてきたデータを使う場合は、Request $requestを使うと良いと思います。
Q2. view側でpostされたデータを使用する場合にはoldを使用すると便利です。
コントローラ側
```php
class HogeController extends Controller
{
   public function form()
   {
       return view('hoge.form');
   }
   public function confirm(Request $request)
   {
       $input = $request->all(); // $inputにpostのデータ入ってる
       return view('hoge.confirm');
   }
}
```
view側(hoge.form)
```html
<form method="post" action="hoge/confirm">
 名前:<input type="text" name="name" value="{{old('name','東京')}}" />
 住所:<input type="text" name="address" value="{{old('address','')}}" />
 <input type="submit" />
</form>
```
view側(hoge.confirm)
```html
<div>
 <div>名前:<input type="text" name="name" value="{{old('name')}}" /></div>
 <div>住所:<input type="text" name="address" value="{{old('address')}}" /></div>
</div>
```
また、formのデータの入力チェックをしたい場合にはconfirmの引数のRequestを自分で作成したRequestクラスに書き換えれば対応したRequestクラスのruleが適用されてNGの場合には自動でindexに戻されます。
formのデータの入力チェックをしたい場合にはconfirmの引数のRequestを自分で作成したRequestクラスに書き換えれば対応したRequestクラスのruleが適用されてNGの場合には自動でindexに戻されるようになります。
Requestクラス内でエラーメッセージなどはまとめて管理できるのでコントローラ側はスッキリします。
```php
   public function confirm(Requests\MyRequest $request)
   {
       return $this->view('hoge.confirm');
       return view('hoge.confirm');
   }
```
↓リクエストクラスはこれで生成されます
php artisan make:request MyRequest
```php
class MyRequest extends Request
{
   /**
    * Determine if the user is authorized to make this request.
    *
    * @return bool
    */
   public function authorize()
   {
       // return (\Auth::check());
       return false;
   }
   /**
    * Get the validation rules that apply to the request.
    *
    * @return array
    */
   public function rules()
   {
       return [
           'name'   => 'required', // 名前必須
           'address' => '',        // 住所任意
       ];
   }
}
```
3 ソースコードが間違っていたので修正

shiroyuki

shiroyuki score 169

2017/05/02 18:09  投稿

Q1.コントローラで送られてきたデータを使う場合は、Request $requestを使うと良いと思います。
Q2. view側でpostされたデータを使用する場合にはoldを使用すると便利です。
コントローラ側
```php
class HogeController extends Controller
{
public function form()
{
return view('hoge.form');
}
public function confirm(Request $request)
{
$input = $request->all(); // $inputにpostのデータ入ってる
return view('hoge.confirm');
}
}
```
view側(hoge.form)
```html
<form method="post" action="hoge/confirm">
名前:<input type="text" name="name" value="{{old('name','東京')}}" />
住所:<input type="text" name="address" value="{{old('address','')}}" />
<input type="submit" />
</form>
```
view側(hoge.confirm)
```html
<div>
<div>名前:<input type="text" name="name" value="{{old('name')}}" /></div>
<div>住所:<input type="text" name="address" value="{{old('address')}}" /></div>
</div>
```
また、formのデータの入力チェックをしたい場合にはconfirmの引数のRequestを自分で作成したRequestクラスに書き換えれば対応したRequestクラスのruleが適用されてNGの場合には自動でindexに戻されます。
```php
public function confirm(Requests\MyRequest $request)
{
return $this->view('hoge.confirm');
}
```
↓リクエストクラスはこれで生成されます
php artisan make:request MyRequest
```php
class MyRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
// return (\Auth::check());
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required', // 名前必須
'address' => '', // 住所任意
];
}
}
```
2 ソースコードが間違っていたので修正

shiroyuki

shiroyuki score 169

2017/05/02 18:09  投稿

Q1.コントローラで送られてきたデータを使う場合は、Request $requestを使うと良いと思います。
Q2. view側でpostされたデータを使用する場合にはoldを使用すると便利です。
コントローラ側
```php
class HogeController extends Controller
{
   public function form()
   {
       return $this->view('hoge.form');
       return view('hoge.form');
   }
   public function confirm(Request $request)
   {
       $input = $request->all(); // $inputにpostのデータ入ってる
       return $this->view('hoge.confirm');
       return view('hoge.confirm');
   }
}
```
view側(hoge.form)
```html
<form method="post" action="hoge/confirm">
 名前:<input type="text" name="name" value="{{old('name','東京')}}" />
 住所:<input type="text" name="address" value="{{old('address','')}}" />
 <input type="submit" />
</form>
```
view側(hoge.confirm)
```html
<div>
 <div>名前:<input type="text" name="name" value="{{old('name')}}" /></div>
 <div>住所:<input type="text" name="address" value="{{old('address')}}" /></div>
</div>
```
また、formのデータの入力チェックをしたい場合にはconfirmの引数のRequestを自分で作成したRequestクラスに書き換えれば対応したRequestクラスのruleが適用されてNGの場合には自動でindexに戻されます。
```php
   public function confirm(Requests\MyRequest $request)
   {
       return $this->view('hoge.confirm');
   }
```
↓リクエストクラスはこれで生成されます
php artisan make:request MyRequest
```php
class MyRequest extends Request
{
   /**
    * Determine if the user is authorized to make this request.
    *
    * @return bool
    */
   public function authorize()
   {
       // return (\Auth::check());
       return false;
   }
   /**
    * Get the validation rules that apply to the request.
    *
    * @return array
    */
   public function rules()
   {
       return [
           'name'   => 'required', // 名前必須
           'address' => '',        // 住所任意
       ];
   }
}
```
1 解凍がわかりにくかったので修正

shiroyuki

shiroyuki score 169

2017/05/02 18:08  投稿

コントローラで送られてきたデータを使う場合は、Request $requestを使うと良いと思います。
また、view側でpostされたデータを使用する場合にはoldを使用すると便利です。
Q1.コントローラで送られてきたデータを使う場合は、Request $requestを使うと良いと思います。
Q2. view側でpostされたデータを使用する場合にはoldを使用すると便利です。
コントローラ側
```php
class HogeController extends Controller
{
   public function form()
   {
       return $this->view('hoge.form');
   }
   public function confirm(Request $request)
   {
       $input = $request->all(); // $inputにpostのデータ入ってる
       return $this->view('hoge.confirm');
   }
}
```
view側(hoge.form)
```html
<form method="post" action="hoge/confirm">
 名前:<input type="text" name="name" value="{{old('name','東京')}}" />
 住所:<input type="text" name="address" value="{{old('address','')}}" />
 <input type="submit" />
</form>
```
view側(hoge.confirm)
```html
<div>
 <div>名前:<input type="text" name="name" value="{{old('name')}}" /></div>
 <div>住所:<input type="text" name="address" value="{{old('address')}}" /></div>
</div>
```
また、formのデータの入力チェックをしたい場合にはconfirmの引数のRequestを自分で作成したRequestクラスに書き換えれば対応したRequestクラスのruleが適用されてNGの場合には自動でindexに戻されます。
```php
   public function confirm(Requests\MyRequest $request)
   {
       return $this->view('hoge.confirm');
   }
```
↓リクエストクラスはこれで生成されます
php artisan make:request MyRequest
```php
class MyRequest extends Request
{
   /**
    * Determine if the user is authorized to make this request.
    *
    * @return bool
    */
   public function authorize()
   {
       // return (\Auth::check());
       return false;
   }
   /**
    * Get the validation rules that apply to the request.
    *
    * @return array
    */
   public function rules()
   {
       return [
           'name'   => 'required', // 名前必須
           'address' => '',        // 住所任意
       ];
   }
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る