PHP Laravelのフォームの値を別画面に渡す方法

環境
Windows11
php 8.2.12
composer 2.8.0
Laravel v11.26.0

使用例
1).ブラウザのURL欄に、http://localhost/laravel/public/demo
を入力するとindex.blade.phpを表示します。
2).index.blade.phpでsubmitボタンを押した時に実行されます。
MainController.phpのfun1メソッドが実行されます。

1.web.php(/routes/web.php)の定義

<?php

Route::get('/demo',function() {
    return view('index');
});


Route::post('/testform','App\Http\Controllers\MainController@fun1');

2.値を送信する側のファイルの定義
値を送信する側のファイルです。(/resources/views/index.blade.php)

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>submit</title>
</head>
<body >
<form action="testform" method="post">
      @csrf
      <input type="text" name="username">
      <input type="text" name="addr">
      <input type="submit" value="送信">
</form>
</body>
</html>

3.コントローラのファイル(/app/Http/Controllers/MainController.php)
サンプルコード

<?php

namespace App\Http\Controllers;

use Request;

class MainController extends Controller 
{

     public function fun1(Request $str)
     {
          $data1 = $str::all();
          return view('testform',compact('data1')); 
     }
}

4.値を受け取る側のファイル(/resources/views/testform.php)

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>submit</title>
</head>
<body >
<p>入力した名前は、{{$data1['username']}}</p>
<p>入力した住所は、{{$data1['addr']}}</p>
</body>
</html>

 

IT

Posted by arkgame