{"id":2688,"date":"2025-03-24T08:46:47","date_gmt":"2025-03-23T23:46:47","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=2688"},"modified":"2025-03-24T08:47:16","modified_gmt":"2025-03-23T23:47:16","slug":"laravel-old%e3%83%98%e3%83%ab%e3%83%91%e3%83%bc%e3%81%ae%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%ef%bc%9a7%e3%81%a4%e3%81%ae%e5%ae%9f%e8%b7%b5%e7%9a%84%e3%81%aa%e4%bd%bf%e3%81%84%e6%96%b9","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=2688","title":{"rendered":"Laravel old\u30d8\u30eb\u30d1\u30fc\u306e\u5b8c\u5168\u30ac\u30a4\u30c9\uff1a7\u3064\u306e\u5b9f\u8df5\u7684\u306a\u4f7f\u3044\u65b9\u3068\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">Laravel\u306eold()\u30d8\u30eb\u30d1\u30fc\u3068\u306f<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">\u30d5\u30a9\u30fc\u30e0\u51e6\u7406\u306b\u304a\u3051\u308b\u91cd\u8981\u6027\u3068\u57fa\u672c\u6982\u5ff5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">\u306a\u305cold()\u30d8\u30eb\u30d1\u30fc\u304c\u5fc5\u8981\u306a\u306e\u304b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-3\">old()\u30d8\u30eb\u30d1\u30fc\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-4\">\u30b7\u30f3\u30d7\u30eb\u306a\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u5b9f\u88c5\u4f8b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-5\">\u914d\u5217\u30c7\u30fc\u30bf\u306e\u53d6\u308a\u6271\u3044\u65b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-6\">\u5b9f\u8df5\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u96c6<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-7\">\u8907\u6570\u30b9\u30c6\u30c3\u30d7\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u6d3b\u7528\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-8\">\u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u4f7f\u3044\u65b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">\u52d5\u7684\u30d5\u30a9\u30fc\u30e0\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u306e\u5fdc\u7528<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u6642\u306e\u52b9\u679c\u7684\u306a\u51e6\u7406<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u306e\u9023\u643a\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-12\">\u6761\u4ef6\u4ed8\u304d\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u6d3b\u7528\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-13\">old()\u30d8\u30eb\u30d1\u30fc\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3068\u62e1\u5f35<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-14\">\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306e\u8a2d\u5b9a\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-15\">\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u3068\u306e\u9023\u643a\u624b\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-16\">old()\u30d8\u30eb\u30d1\u30fc\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-17\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3068\u30c7\u30fc\u30bf\u30b5\u30cb\u30bf\u30a4\u30ba<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-18\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-19\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-20\">\u3088\u304f\u3042\u308b\u554f\u984c\u3068\u89e3\u6c7a\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-25\">\u30c7\u30d0\u30c3\u30b0\u306e\u305f\u3081\u306eTips\u96c6<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">Laravel\u306eold()\u30d8\u30eb\u30d1\u30fc\u3068\u306f<\/h2>\n\n\n\n<p>\u30d5\u30a9\u30fc\u30e0\u51e6\u7406\u306f\u73fe\u4ee3\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u91cd\u8981\u306a\u8981\u7d20\u3067\u3059\u3002\u7279\u306b\u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306b\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u5165\u529b\u5024\u3092\u7dad\u6301\u3059\u308b\u3053\u3068\u306f\u975e\u5e38\u306b\u91cd\u8981\u3067\u3059\u3002Laravel\u306e<code>old()<\/code>\u30d8\u30eb\u30d1\u30fc\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u8ab2\u984c\u3092\u7c21\u5358\u306b\u89e3\u6c7a\u3067\u304d\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">\u30d5\u30a9\u30fc\u30e0\u51e6\u7406\u306b\u304a\u3051\u308b\u91cd\u8981\u6027\u3068\u57fa\u672c\u6982\u5ff5<\/h3>\n\n\n\n<p><code>old()<\/code>\u30d8\u30eb\u30d1\u30fc\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u30b5\u30d6\u30df\u30c3\u30c8\u5f8c\u306b\u5165\u529b\u5024\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306eLaravel\u306e\u7d44\u307f\u8fbc\u307f\u6a5f\u80fd\u3067\u3059\u3002\u4e3b\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5834\u9762\u3067\u6d3b\u7528\u3055\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u767a\u751f\u6642\u306e\u30d5\u30a9\u30fc\u30e0\u5024\u306e\u4fdd\u6301<\/li>\n\n\n\n<li>\u8907\u6570\u30b9\u30c6\u30c3\u30d7\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u5165\u529b\u5024\u306e\u7dad\u6301<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u306e\u5165\u529b\u4f5c\u696d\u306e\u4e2d\u65ad\u3068\u518d\u958b<\/li>\n<\/ul>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;input type=\"text\" name=\"username\" value=\"{{ old('username') }}\"&gt;<\/pre>\n\n\n\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u51e6\u7406\u304c\u884c\u308f\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d5\u30a9\u30fc\u30e0\u51e6\u7406\u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\npublic function store(Request $request)\n{\n    \/\/ \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306b\u5931\u6557\u3057\u305f\u5834\u5408\n    $validator = Validator::make($request-&gt;all(), [\n        'username' =&gt; 'required|min:3',\n    ]);\n\n    if ($validator-&gt;fails()) {\n        \/\/ \u5165\u529b\u5024\u306f\u81ea\u52d5\u7684\u306b\u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\u3055\u308c\u3001\n        \/\/ old()\u30d8\u30eb\u30d1\u30fc\u3067\u53d6\u5f97\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\n        return redirect()-&gt;back()\n                        -&gt;withErrors($validator)\n                        -&gt;withInput();\n    }\n\n    \/\/ \u51e6\u7406\u7d9a\u884c...\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">\u306a\u305cold()\u30d8\u30eb\u30d1\u30fc\u304c\u5fc5\u8981\u306a\u306e\u304b<\/h3>\n\n\n\n<p><code>old()<\/code>\u30d8\u30eb\u30d1\u30fc\u306e\u5fc5\u8981\u6027\u306f\u3001\u4ee5\u4e0b\u306e3\u3064\u306e\u4e3b\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u304b\u3089\u8aac\u660e\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30a9\u30fc\u30e0\u9001\u4fe1\u5f8c\u306e\u30a8\u30e9\u30fc\u6642\u306b\u5165\u529b\u5024\u304c\u6d88\u3048\u306a\u3044<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u306e\u5165\u529b\u52b4\u529b\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b<\/li>\n\n\n\n<li>\u30d5\u30e9\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u8efd\u6e1b<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u958b\u767a\u52b9\u7387\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5165\u529b\u5024\u306e\u7dad\u6301\u306b\u95a2\u3059\u308b\u5b9f\u88c5\u3092\u7c21\u7d20\u5316<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u306e\u30dc\u30a4\u30e9\u30fc\u30d7\u30ec\u30fc\u30c8\u30b3\u30fc\u30c9\u3092\u524a\u6e1b<\/li>\n\n\n\n<li>\u4e00\u8cab\u3057\u305f\u65b9\u6cd5\u3067\u306e\u5165\u529b\u5024\u306e\u53d6\u308a\u6271\u3044<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4fdd\u5b88\u6027\u306e\u5411\u4e0a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u6a19\u6e96\u306e\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306b\u3088\u308b\u4e00\u8cab\u6027<\/li>\n\n\n\n<li>\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u5411\u4e0a<\/li>\n\n\n\n<li>\u30d0\u30b0\u306e\u767a\u751f\u30ea\u30b9\u30af\u306e\u4f4e\u6e1b<\/li>\n<\/ul>\n\n\n\n<p>\u5b9f\u969b\u306e\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u57fa\u672c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5 --&gt;\n&lt;form method=\"POST\" action=\"\/profile\"&gt;\n    @csrf\n    &lt;input type=\"text\" name=\"name\" value=\"{{ old('name', $user-&gt;name) }}\"&gt;\n\n    &lt;!-- \u914d\u5217\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf --&gt;\n    &lt;input type=\"email\" name=\"emails[]\" value=\"{{ old('emails.0') }}\"&gt;\n\n    &lt;!-- \u30cd\u30b9\u30c8\u3055\u308c\u305f\u30c7\u30fc\u30bf --&gt;\n    &lt;input type=\"text\" name=\"address[city]\" value=\"{{ old('address.city') }}\"&gt;\n&lt;\/form&gt;<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306b\u3001<code>old()<\/code>\u30d8\u30eb\u30d1\u30fc\u306f\u5358\u306a\u308b\u5165\u529b\u5024\u306e\u7dad\u6301\u3060\u3051\u3067\u306a\u304f\u3001\u69d8\u3005\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u306b\u5bfe\u5fdc\u3057\u305f\u67d4\u8edf\u306a\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u7169\u96d1\u306a\u30d5\u30a9\u30fc\u30e0\u51e6\u7406\u306e\u30ed\u30b8\u30c3\u30af\u304b\u3089\u89e3\u653e\u3055\u308c\u3001\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u306e\u5b9f\u88c5\u306b\u96c6\u4e2d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">old()\u30d8\u30eb\u30d1\u30fc\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">\u30b7\u30f3\u30d7\u30eb\u306a\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u5b9f\u88c5\u4f8b<\/h3>\n\n\n\n<p>old()\u30d8\u30eb\u30d1\u30fc\u306e\u57fa\u672c\u7684\u306a\u5b9f\u88c5\u306f\u975e\u5e38\u306b\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002\u4ee5\u4e0b\u306b\u3001\u5178\u578b\u7684\u306a\u4f7f\u7528\u30d1\u30bf\u30fc\u30f3\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/user\/profile.blade.php --&gt;\n&lt;form method=\"POST\" action=\"{{ route('profile.update') }}\"&gt;\n    @csrf\n    @method('PUT')\n\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"name\"&gt;\u540d\u524d&lt;\/label&gt;\n        &lt;input type=\"text\" \n               class=\"form-control @error('name') is-invalid @enderror\" \n               id=\"name\" \n               name=\"name\" \n               value=\"{{ old('name', $user-&gt;name) }}\"&gt;\n        @error('name')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"email\"&gt;\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9&lt;\/label&gt;\n        &lt;input type=\"email\" \n               class=\"form-control @error('email') is-invalid @enderror\" \n               id=\"email\" \n               name=\"email\" \n               value=\"{{ old('email', $user-&gt;email) }}\"&gt;\n        @error('email')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;button type=\"submit\" class=\"btn btn-primary\"&gt;\u66f4\u65b0&lt;\/button&gt;\n&lt;\/form&gt;<\/pre>\n\n\n\n<p>\u5bfe\u5fdc\u3059\u308b\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u5b9f\u88c5\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/ProfileController.php\npublic function update(Request $request)\n{\n    $validated = $request-&gt;validate([\n        'name' =&gt; 'required|string|max:255',\n        'email' =&gt; 'required|email|unique:users,email,' . auth()-&gt;id(),\n    ]);\n\n    \/\/ \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u306f\u81ea\u52d5\u7684\u306b\n    \/\/ \u5165\u529b\u5024\u304cold()\u3067\u53d6\u5f97\u53ef\u80fd\u306a\u72b6\u614b\u3067\u524d\u306e\u30da\u30fc\u30b8\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\n\n    \/\/ \u6210\u529f\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    auth()-&gt;user()-&gt;update($validated);\n\n    return redirect()\n        -&gt;route('profile.edit')\n        -&gt;with('success', '\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f');\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">\u914d\u5217\u30c7\u30fc\u30bf\u306e\u53d6\u308a\u6271\u3044\u65b9<\/h3>\n\n\n\n<p>\u8907\u6570\u306e\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9\u3084\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u3092\u6301\u3064\u30d5\u30a9\u30fc\u30e0\u3067\u306f\u3001\u914d\u5217\u5f62\u5f0f\u3067\u30c7\u30fc\u30bf\u3092\u6271\u3046\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002old()\u30d8\u30eb\u30d1\u30fc\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u914d\u5217\u30c7\u30fc\u30bf\u3082\u7c21\u5358\u306b\u51e6\u7406\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u8907\u6570\u306e\u96fb\u8a71\u756a\u53f7\u3092\u6271\u3046\u30d5\u30a9\u30fc\u30e0 --&gt;\n&lt;form method=\"POST\" action=\"{{ route('contacts.store') }}\"&gt;\n    @csrf\n\n    &lt;!-- \u5358\u7d14\u306a\u914d\u5217\u306e\u5834\u5408 --&gt;\n    @foreach(range(0, 2) as $index)\n        &lt;div class=\"form-group\"&gt;\n            &lt;label for=\"phone_{{ $index }}\"&gt;\u96fb\u8a71\u756a\u53f7 {{ $index + 1 }}&lt;\/label&gt;\n            &lt;input type=\"text\" \n                   name=\"phones[]\" \n                   id=\"phone_{{ $index }}\"\n                   value=\"{{ old('phones.' . $index) }}\"\n                   class=\"form-control\"&gt;\n        &lt;\/div&gt;\n    @endforeach\n\n    &lt;!-- \u9023\u60f3\u914d\u5217\u306e\u5834\u5408 --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label&gt;\u4f4f\u6240\u60c5\u5831&lt;\/label&gt;\n        &lt;input type=\"text\" \n               name=\"address[postal_code]\" \n               value=\"{{ old('address.postal_code') }}\"\n               placeholder=\"\u90f5\u4fbf\u756a\u53f7\"&gt;\n        &lt;input type=\"text\" \n               name=\"address[prefecture]\" \n               value=\"{{ old('address.prefecture') }}\"\n               placeholder=\"\u90fd\u9053\u5e9c\u770c\"&gt;\n        &lt;input type=\"text\" \n               name=\"address[city]\" \n               value=\"{{ old('address.city') }}\"\n               placeholder=\"\u5e02\u533a\u753a\u6751\"&gt;\n    &lt;\/div&gt;\n&lt;\/form&gt;<\/pre>\n\n\n\n<p>\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3067\u306e\u51e6\u7406\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public function store(Request $request)\n{\n    $validated = $request-&gt;validate([\n        'phones.*' =&gt; 'required|string|regex:\/^[0-9-]+$\/',\n        'address.postal_code' =&gt; 'required|regex:\/^\\d{3}-\\d{4}$\/',\n        'address.prefecture' =&gt; 'required|string',\n        'address.city' =&gt; 'required|string',\n    ]);\n\n    \/\/ \u914d\u5217\u30c7\u30fc\u30bf\u306e\u51e6\u7406\n    foreach ($validated['phones'] as $phone) {\n        auth()-&gt;user()-&gt;phones()-&gt;create(['number' =&gt; $phone]);\n    }\n\n    \/\/ \u9023\u60f3\u914d\u5217\u30c7\u30fc\u30bf\u306e\u51e6\u7406\n    auth()-&gt;user()-&gt;address()-&gt;create($validated['address']);\n\n    return redirect()\n        -&gt;route('contacts.index')\n        -&gt;with('success', '\u9023\u7d61\u5148\u60c5\u5831\u3092\u4fdd\u5b58\u3057\u307e\u3057\u305f');\n}<\/pre>\n\n\n\n<p>\u914d\u5217\u30c7\u30fc\u30bf\u3092\u6271\u3046\u969b\u306e\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c9\u30c3\u30c8\u8a18\u6cd5\u306e\u4f7f\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u914d\u5217\u306e\u8981\u7d20\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u969b\u306f\u3001\u30c9\u30c3\u30c8\u8a18\u6cd5\u3092\u4f7f\u7528\u3057\u307e\u3059<\/li>\n\n\n\n<li>\u4f8b\uff1a<code>old('phones.0')<\/code>\u3001<code>old('address.city')<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u914d\u5217\u8981\u7d20\u306b\u5bfe\u3057\u3066\u3082\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059<\/li>\n\n\n\n<li>\u4f8b\uff1a<code>old('phones.0', $defaultPhone)<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u914d\u5217\u8981\u7d20\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306b\u306f<code>*<\/code>\u3092\u4f7f\u7528\u3057\u307e\u3059<\/li>\n\n\n\n<li>\u4f8b\uff1a<code>'phones.*' =&gt; 'required|string'<\/code><\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u914d\u5217\u8981\u7d20\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306f\u81ea\u52d5\u7684\u306b\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306b\u7d10\u4ed8\u3051\u3089\u308c\u307e\u3059<\/li>\n\n\n\n<li><code>@error('phones.0')<\/code>\u306e\u3088\u3046\u306b\u500b\u5225\u306b\u8868\u793a\u53ef\u80fd<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-6\">\u5b9f\u8df5\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u96c6<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-7\">\u8907\u6570\u30b9\u30c6\u30c3\u30d7\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u6d3b\u7528\u6cd5<\/h3>\n\n\n\n<p>\u8907\u6570\u30b9\u30c6\u30c3\u30d7\u30d5\u30a9\u30fc\u30e0\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u767b\u9332\u3084\u30a2\u30f3\u30b1\u30fc\u30c8\u56de\u7b54\u306a\u3069\u3001\u5927\u91cf\u306e\u5165\u529b\u3092\u5fc5\u8981\u3068\u3059\u308b\u5834\u9762\u3067\u3088\u304f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002old()\u30d8\u30eb\u30d1\u30fc\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5229\u70b9\u304c\u5f97\u3089\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5404\u30b9\u30c6\u30c3\u30d7\u9593\u3067\u306e\u30c7\u30fc\u30bf\u306e\u6c38\u7d9a\u5316<\/li>\n\n\n\n<li>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u6642\u306e\u5165\u529b\u5024\u4fdd\u6301<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u306e\u5165\u529b\u30df\u30b9\u3078\u306e\u5bfe\u5fdc<\/li>\n<\/ul>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u30012\u30b9\u30c6\u30c3\u30d7\u306e\u4f1a\u54e1\u767b\u9332\u30d5\u30a9\u30fc\u30e0\u306e\u5b9f\u88c5\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/RegisterController.php\nclass RegisterController extends Controller\n{\n    public function showStep1()\n    {\n        \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\u3055\u308c\u305f\u5024\u304c\u3042\u308c\u3070\u53d6\u5f97\uff08\u7de8\u96c6\u6642\u306b\u4f7f\u7528\uff09\n        $savedData = session('registration_step1', []);\n        return view('register.step1', compact('savedData'));\n    }\n\n    public function postStep1(Request $request)\n    {\n        \/\/ \u30b9\u30c6\u30c3\u30d71\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\n        $validated = $request-&gt;validate([\n            'email' =&gt; 'required|email|unique:users',\n            'password' =&gt; 'required|min:8|confirmed',\n        ]);\n\n        \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\n        \/\/ withInput\u3092\u4f7f\u7528\u305b\u305a\u3001\u660e\u793a\u7684\u306b\u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\n        $request-&gt;session()-&gt;put('registration_step1', $validated);\n\n        return redirect()-&gt;route('register.step2');\n    }\n\n    public function showStep2()\n    {\n        \/\/ \u30b9\u30c6\u30c3\u30d71\u306e\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f\u6700\u521d\u306b\u623b\u3059\n        if (!session()-&gt;has('registration_step1')) {\n            return redirect()\n                -&gt;route('register.step1')\n                -&gt;with('error', '\u6700\u521d\u306e\u30b9\u30c6\u30c3\u30d7\u304b\u3089\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044');\n        }\n\n        return view('register.step2');\n    }\n}<\/pre>\n\n\n\n<p>\u30d3\u30e5\u30fc\u306e\u5b9f\u88c5\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/register\/step1.blade.php --&gt;\n&lt;form method=\"POST\" action=\"{{ route('register.post.step1') }}\"&gt;\n    @csrf\n    &lt;!-- \u57fa\u672c\u60c5\u5831\u306e\u5165\u529b --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"email\"&gt;\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9&lt;\/label&gt;\n        &lt;input type=\"email\" \n               name=\"email\" \n               value=\"{{ old('email', $savedData['email'] ?? '') }}\"\n               class=\"form-control @error('email') is-invalid @enderror\"&gt;\n        @error('email')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5165\u529b\u6b04\u306f\u5024\u3092\u4fdd\u6301\u3057\u306a\u3044 --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"password\"&gt;\u30d1\u30b9\u30ef\u30fc\u30c9&lt;\/label&gt;\n        &lt;input type=\"password\" \n               name=\"password\"\n               class=\"form-control @error('password') is-invalid @enderror\"&gt;\n        @error('password')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;button type=\"submit\"&gt;\u6b21\u3078\u9032\u3080&lt;\/button&gt;\n&lt;\/form&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u4f7f\u3044\u65b9<\/h3>\n\n\n\n<p>\u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u542b\u3080\u30d5\u30a9\u30fc\u30e0\u3067\u306f\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u3067\u3082\u4ed6\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5024\u3092\u4fdd\u6301\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u4ee5\u4e0b\u306f\u3001\u5546\u54c1\u767b\u9332\u30d5\u30a9\u30fc\u30e0\u306e\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/ProductController.php\nclass ProductController extends Controller\n{\n    public function store(Request $request)\n    {\n        \/\/ \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u306e\u5b9a\u7fa9\n        $rules = [\n            'name' =&gt; 'required|string|max:255',\n            'price' =&gt; 'required|numeric|min:0',\n            'description' =&gt; 'required|string',\n            'images.*' =&gt; 'required|image|max:2048', \/\/ \u8907\u6570\u753b\u50cf\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\n            'category_id' =&gt; 'required|exists:categories,id'\n        ];\n\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\n        $messages = [\n            'images.*.image' =&gt; '\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044',\n            'images.*.max' =&gt; '\u753b\u50cf\u30b5\u30a4\u30ba\u306f2MB\u4ee5\u4e0b\u306b\u3057\u3066\u304f\u3060\u3055\u3044',\n        ];\n\n        $validated = $request-&gt;validate($rules, $messages);\n\n        \/\/ \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u958b\u59cb\n        DB::beginTransaction();\n        try {\n            \/\/ \u5546\u54c1\u306e\u57fa\u672c\u60c5\u5831\u3092\u4fdd\u5b58\n            $product = Product::create([\n                'name' =&gt; $validated['name'],\n                'price' =&gt; $validated['price'],\n                'description' =&gt; $validated['description'],\n                'category_id' =&gt; $validated['category_id']\n            ]);\n\n            \/\/ \u753b\u50cf\u306e\u4fdd\u5b58\u51e6\u7406\n            if ($request-&gt;hasFile('images')) {\n                foreach ($request-&gt;file('images') as $image) {\n                    $path = $image-&gt;store('products');\n                    $product-&gt;images()-&gt;create(['path' =&gt; $path]);\n                }\n            }\n\n            DB::commit();\n            return redirect()\n                -&gt;route('products.index')\n                -&gt;with('success', '\u5546\u54c1\u3092\u767b\u9332\u3057\u307e\u3057\u305f');\n\n        } catch (\\Exception $e) {\n            DB::rollback();\n            return back()\n                -&gt;withInput()  \/\/ \u3053\u3053\u3067old()\u3067\u53d6\u5f97\u3067\u304d\u308b\u5024\u3092\u4fdd\u5b58\n                -&gt;with('error', '\u5546\u54c1\u306e\u767b\u9332\u306b\u5931\u6557\u3057\u307e\u3057\u305f');\n        }\n    }\n}<\/pre>\n\n\n\n<p>\u30d3\u30e5\u30fc\u306e\u5b9f\u88c5\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/products\/create.blade.php --&gt;\n&lt;form method=\"POST\" \n      action=\"{{ route('products.store') }}\" \n      enctype=\"multipart\/form-data\"&gt;\n    @csrf\n\n    &lt;!-- \u5546\u54c1\u57fa\u672c\u60c5\u5831 --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"name\"&gt;\u5546\u54c1\u540d&lt;\/label&gt;\n        &lt;input type=\"text\" \n               name=\"name\" \n               value=\"{{ old('name') }}\"\n               class=\"form-control @error('name') is-invalid @enderror\"&gt;\n        @error('name')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u30ab\u30c6\u30b4\u30ea\u30fc\u9078\u629e --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"category_id\"&gt;\u30ab\u30c6\u30b4\u30ea\u30fc&lt;\/label&gt;\n        &lt;select name=\"category_id\" \n                class=\"form-control @error('category_id') is-invalid @enderror\"&gt;\n            &lt;option value=\"\"&gt;\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044&lt;\/option&gt;\n            @foreach($categories as $category)\n                &lt;option value=\"{{ $category-&gt;id }}\" \n                        {{ old('category_id') == $category-&gt;id ? 'selected' : '' }}&gt;\n                    {{ $category-&gt;name }}\n                &lt;\/option&gt;\n            @endforeach\n        &lt;\/select&gt;\n        @error('category_id')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u753b\u50cf\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9 --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"images\"&gt;\u5546\u54c1\u753b\u50cf\uff08\u8907\u6570\u9078\u629e\u53ef\uff09&lt;\/label&gt;\n        &lt;input type=\"file\" \n               name=\"images[]\" \n               multiple\n               class=\"form-control @error('images.*') is-invalid @enderror\"&gt;\n        @error('images.*')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n&lt;\/form&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u52d5\u7684\u30d5\u30a9\u30fc\u30e0\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u306e\u5fdc\u7528<\/h3>\n\n\n\n<p>JavaScript\u3067\u52d5\u7684\u306b\u8ffd\u52a0\u30fb\u524a\u9664\u3067\u304d\u308b\u30d5\u30a9\u30fc\u30e0\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u306f\u3001old()\u30d8\u30eb\u30d1\u30fc\u3092\u4f7f\u3063\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5b9f\u88c5\u304c\u53ef\u80fd\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/orders\/create.blade.php --&gt;\n&lt;div id=\"dynamic-form\"&gt;\n    &lt;!-- \u5546\u54c1\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9\u7fa4 --&gt;\n    &lt;div id=\"items-container\"&gt;\n        @foreach(old('items', [['name' =&gt; '', 'quantity' =&gt; '']]) as $index =&gt; $item)\n            &lt;div class=\"item-row\" data-index=\"{{ $index }}\"&gt;\n                &lt;div class=\"form-group\"&gt;\n                    &lt;label&gt;\u5546\u54c1\u540d&lt;\/label&gt;\n                    &lt;input type=\"text\" \n                           name=\"items[{{ $index }}][name]\" \n                           value=\"{{ $item['name'] }}\"\n                           class=\"form-control\"&gt;\n                &lt;\/div&gt;\n                &lt;div class=\"form-group\"&gt;\n                    &lt;label&gt;\u6570\u91cf&lt;\/label&gt;\n                    &lt;input type=\"number\" \n                           name=\"items[{{ $index }}][quantity]\" \n                           value=\"{{ $item['quantity'] }}\"\n                           class=\"form-control\"&gt;\n                &lt;\/div&gt;\n                &lt;button type=\"button\" \n                        class=\"btn btn-danger remove-item\"\n                        onclick=\"removeItem({{ $index }})\"&gt;\n                    \u524a\u9664\n                &lt;\/button&gt;\n            &lt;\/div&gt;\n        @endforeach\n    &lt;\/div&gt;\n\n    &lt;button type=\"button\" \n            class=\"btn btn-secondary\" \n            onclick=\"addItem()\"&gt;\n        \u5546\u54c1\u3092\u8ffd\u52a0\n    &lt;\/button&gt;\n&lt;\/div&gt;\n\n&lt;script&gt;\n\/\/ \u5546\u54c1\u884c\u306e\u8ffd\u52a0\nfunction addItem() {\n    const index = document.querySelectorAll('.item-row').length;\n    const template = `\n        &lt;div class=\"item-row\" data-index=\"${index}\"&gt;\n            &lt;div class=\"form-group\"&gt;\n                &lt;label&gt;\u5546\u54c1\u540d&lt;\/label&gt;\n                &lt;input type=\"text\" \n                       name=\"items[${index}][name]\" \n                       class=\"form-control\"&gt;\n            &lt;\/div&gt;\n            &lt;div class=\"form-group\"&gt;\n                &lt;label&gt;\u6570\u91cf&lt;\/label&gt;\n                &lt;input type=\"number\" \n                       name=\"items[${index}][quantity]\" \n                       class=\"form-control\"&gt;\n            &lt;\/div&gt;\n            &lt;button type=\"button\" \n                    class=\"btn btn-danger remove-item\"\n                    onclick=\"removeItem(${index})\"&gt;\n                \u524a\u9664\n            &lt;\/button&gt;\n        &lt;\/div&gt;\n    `;\n    document.getElementById('items-container').insertAdjacentHTML('beforeend', template);\n}\n\n\/\/ \u5546\u54c1\u884c\u306e\u524a\u9664\nfunction removeItem(index) {\n    document.querySelector(`[data-index=\"${index}\"]`).remove();\n}\n&lt;\/script&gt;<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u52d5\u7684\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u521d\u671f\u5024\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>old()\u306e\u7b2c2\u5f15\u6570\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u6642\u306b\u5168\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u5fa9\u5143<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u7ba1\u7406<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5404\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u4e00\u610f\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4ed8\u4e0e<\/li>\n\n\n\n<li>\u524a\u9664\u6642\u3082\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u7dad\u6301<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u5bfe\u5fdc<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u914d\u5217\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u5fdc\u3057\u305f\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u306e\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u9069\u5207\u306a\u8868\u793a<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306f\u3001\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u3067\u3088\u304f\u906d\u9047\u3059\u308b\u5834\u9762\u3067\u3059\u3002old()\u30d8\u30eb\u30d1\u30fc\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30e6\u30fc\u30b6\u30fc\u30d5\u30ec\u30f3\u30c9\u30ea\u30fc\u306a\u30d5\u30a9\u30fc\u30e0\u51e6\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-10\">\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u6642\u306e\u52b9\u679c\u7684\u306a\u51e6\u7406<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u306e\u9023\u643a\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u3001old()\u30d8\u30eb\u30d1\u30fc\u3068\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9069\u5207\u306b\u9023\u643a\u3055\u305b\u308b\u3053\u3068\u3067\u3001\u30e6\u30fc\u30b6\u30fc\u306b\u5206\u304b\u308a\u3084\u3059\u3044\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u63d0\u4f9b\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/UserController.php\nclass UserController extends Controller\n{\n    public function update(Request $request, User $user)\n    {\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5b9a\u7fa9\n        $messages = [\n            'email.unique' =&gt; '\u3053\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u65e2\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002',\n            'phone.regex' =&gt; '\u96fb\u8a71\u756a\u53f7\u306e\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002',\n            'preferences.*.exists' =&gt; '\u9078\u629e\u3055\u308c\u305f\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u7121\u52b9\u3067\u3059\u3002',\n        ];\n\n        \/\/ \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u306e\u5b9a\u7fa9\n        $validated = $request-&gt;validate([\n            'email' =&gt; 'required|email|unique:users,email,'.$user-&gt;id,\n            'phone' =&gt; 'required|regex:\/^[0-9-]+$\/',\n            'preferences.*' =&gt; 'exists:preferences,id',\n            'notification_settings' =&gt; 'array',\n            'notification_settings.email' =&gt; 'boolean',\n            'notification_settings.sms' =&gt; 'boolean',\n        ], $messages);\n\n        try {\n            DB::beginTransaction();\n\n            \/\/ \u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u306e\u66f4\u65b0\n            $user-&gt;update([\n                'email' =&gt; $validated['email'],\n                'phone' =&gt; $validated['phone'],\n            ]);\n\n            \/\/ \u8a2d\u5b9a\u306e\u66f4\u65b0\n            if (isset($validated['preferences'])) {\n                $user-&gt;preferences()-&gt;sync($validated['preferences']);\n            }\n\n            \/\/ \u901a\u77e5\u8a2d\u5b9a\u306e\u66f4\u65b0\n            if (isset($validated['notification_settings'])) {\n                $user-&gt;notification_settings()-&gt;updateOrCreate(\n                    ['user_id' =&gt; $user-&gt;id],\n                    $validated['notification_settings']\n                );\n            }\n\n            DB::commit();\n            return redirect()\n                -&gt;route('users.show', $user)\n                -&gt;with('success', '\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f');\n\n        } catch (\\Exception $e) {\n            DB::rollBack();\n            return back()\n                -&gt;withInput()\n                -&gt;with('error', '\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u306e\u66f4\u65b0\u306b\u5931\u6557\u3057\u307e\u3057\u305f');\n        }\n    }\n}<\/pre>\n\n\n\n<p>\u30d3\u30e5\u30fc\u3067\u306e\u5b9f\u88c5\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/users\/edit.blade.php --&gt;\n&lt;form method=\"POST\" action=\"{{ route('users.update', $user) }}\"&gt;\n    @csrf\n    @method('PUT')\n\n    &lt;!-- \u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9 --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"email\"&gt;\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9&lt;\/label&gt;\n        &lt;input type=\"email\" \n               id=\"email\"\n               name=\"email\" \n               value=\"{{ old('email', $user-&gt;email) }}\"\n               class=\"form-control @error('email') is-invalid @enderror\"&gt;\n        @error('email')\n            &lt;div class=\"invalid-feedback\"&gt;\n                {{ $message }}\n            &lt;\/div&gt;\n        @enderror\n        &lt;small class=\"form-text text-muted\"&gt;\n            \u901a\u77e5\u306e\u53d7\u4fe1\u306b\u4f7f\u7528\u3055\u308c\u308b\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u3059\n        &lt;\/small&gt;\n    &lt;\/div&gt;\n\n    &lt;!-- \u96fb\u8a71\u756a\u53f7\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9 --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"phone\"&gt;\u96fb\u8a71\u756a\u53f7&lt;\/label&gt;\n        &lt;input type=\"tel\" \n               id=\"phone\"\n               name=\"phone\" \n               value=\"{{ old('phone', $user-&gt;phone) }}\"\n               class=\"form-control @error('phone') is-invalid @enderror\"&gt;\n        @error('phone')\n            &lt;div class=\"invalid-feedback\"&gt;\n                {{ $message }}\n            &lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\uff08\u8907\u6570\u9078\u629e\uff09 --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label&gt;\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3&lt;\/label&gt;\n        @foreach($preferences as $preference)\n            &lt;div class=\"custom-control custom-checkbox\"&gt;\n                &lt;input type=\"checkbox\" \n                       class=\"custom-control-input\" \n                       id=\"preference_{{ $preference-&gt;id }}\"\n                       name=\"preferences[]\" \n                       value=\"{{ $preference-&gt;id }}\"\n                       {{ in_array($preference-&gt;id, old('preferences', $user-&gt;preferences-&gt;pluck('id')-&gt;toArray())) ? 'checked' : '' }}&gt;\n                &lt;label class=\"custom-control-label\" \n                       for=\"preference_{{ $preference-&gt;id }}\"&gt;\n                    {{ $preference-&gt;name }}\n                &lt;\/label&gt;\n            &lt;\/div&gt;\n        @endforeach\n        @error('preferences.*')\n            &lt;div class=\"invalid-feedback d-block\"&gt;\n                {{ $message }}\n            &lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u901a\u77e5\u8a2d\u5b9a --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label&gt;\u901a\u77e5\u8a2d\u5b9a&lt;\/label&gt;\n        &lt;div class=\"custom-control custom-switch\"&gt;\n            &lt;input type=\"hidden\" name=\"notification_settings[email]\" value=\"0\"&gt;\n            &lt;input type=\"checkbox\" \n                   class=\"custom-control-input\" \n                   id=\"notification_email\"\n                   name=\"notification_settings[email]\" \n                   value=\"1\"\n                   {{ old('notification_settings.email', $user-&gt;notification_settings-&gt;email ?? false) ? 'checked' : '' }}&gt;\n            &lt;label class=\"custom-control-label\" for=\"notification_email\"&gt;\n                \u30e1\u30fc\u30eb\u901a\u77e5\u3092\u53d7\u3051\u53d6\u308b\n            &lt;\/label&gt;\n        &lt;\/div&gt;\n        &lt;div class=\"custom-control custom-switch\"&gt;\n            &lt;input type=\"hidden\" name=\"notification_settings[sms]\" value=\"0\"&gt;\n            &lt;input type=\"checkbox\" \n                   class=\"custom-control-input\" \n                   id=\"notification_sms\"\n                   name=\"notification_settings[sms]\" \n                   value=\"1\"\n                   {{ old('notification_settings.sms', $user-&gt;notification_settings-&gt;sms ?? false) ? 'checked' : '' }}&gt;\n            &lt;label class=\"custom-control-label\" for=\"notification_sms\"&gt;\n                SMS\u901a\u77e5\u3092\u53d7\u3051\u53d6\u308b\n            &lt;\/label&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n\n    &lt;button type=\"submit\" class=\"btn btn-primary\"&gt;\n        \u66f4\u65b0\u3059\u308b\n    &lt;\/button&gt;\n&lt;\/form&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u6761\u4ef6\u4ed8\u304d\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u6d3b\u7528\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>\u7279\u5b9a\u306e\u6761\u4ef6\u4e0b\u3067\u306e\u307f\u9069\u7528\u3055\u308c\u308b\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u304c\u3042\u308b\u5834\u5408\u3001old()\u30d8\u30eb\u30d1\u30fc\u3092\u4f7f\u3063\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9f\u88c5\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/PaymentController.php\nclass PaymentController extends Controller\n{\n    public function store(Request $request)\n    {\n        \/\/ \u652f\u6255\u3044\u65b9\u6cd5\u306b\u5fdc\u3058\u3066\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u3092\u52d5\u7684\u306b\u8a2d\u5b9a\n        $rules = [\n            'payment_method' =&gt; 'required|in:credit_card,bank_transfer',\n            'amount' =&gt; 'required|numeric|min:100',\n        ];\n\n        \/\/ \u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u9078\u629e\u6642\u306e\u30eb\u30fc\u30eb\n        if ($request-&gt;input('payment_method') === 'credit_card') {\n            $rules += [\n                'card_number' =&gt; 'required|string|size:16',\n                'expiry_month' =&gt; 'required|numeric|between:1,12',\n                'expiry_year' =&gt; 'required|numeric|min:' . date('Y'),\n                'cvv' =&gt; 'required|numeric|digits:3',\n            ];\n        }\n\n        \/\/ \u9280\u884c\u632f\u8fbc\u9078\u629e\u6642\u306e\u30eb\u30fc\u30eb\n        if ($request-&gt;input('payment_method') === 'bank_transfer') {\n            $rules += [\n                'bank_name' =&gt; 'required|string',\n                'branch_name' =&gt; 'required|string',\n                'account_type' =&gt; 'required|in:ordinary,current',\n                'account_number' =&gt; 'required|string|size:7',\n                'account_name' =&gt; 'required|string',\n            ];\n        }\n\n        \/\/ \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u5b9f\u884c\n        $validated = $request-&gt;validate($rules);\n\n        \/\/ \u51e6\u7406\u306e\u5b9f\u884c...\n    }\n}<\/pre>\n\n\n\n<p>\u30d3\u30e5\u30fc\u3067\u306e\u5b9f\u88c5\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/payments\/create.blade.php --&gt;\n&lt;form method=\"POST\" action=\"{{ route('payments.store') }}\" id=\"paymentForm\"&gt;\n    @csrf\n\n    &lt;!-- \u652f\u6255\u3044\u91d1\u984d --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"amount\"&gt;\u652f\u6255\u3044\u91d1\u984d&lt;\/label&gt;\n        &lt;input type=\"number\" \n               name=\"amount\" \n               value=\"{{ old('amount') }}\"\n               class=\"form-control @error('amount') is-invalid @enderror\"&gt;\n        @error('amount')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u652f\u6255\u3044\u65b9\u6cd5\u306e\u9078\u629e --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"payment_method\"&gt;\u652f\u6255\u3044\u65b9\u6cd5&lt;\/label&gt;\n        &lt;select name=\"payment_method\" \n                id=\"payment_method\"\n                class=\"form-control @error('payment_method') is-invalid @enderror\"&gt;\n            &lt;option value=\"\"&gt;\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044&lt;\/option&gt;\n            &lt;option value=\"credit_card\" \n                    {{ old('payment_method') === 'credit_card' ? 'selected' : '' }}&gt;\n                \u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\n            &lt;\/option&gt;\n            &lt;option value=\"bank_transfer\" \n                    {{ old('payment_method') === 'bank_transfer' ? 'selected' : '' }}&gt;\n                \u9280\u884c\u632f\u8fbc\n            &lt;\/option&gt;\n        &lt;\/select&gt;\n        @error('payment_method')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u60c5\u5831\u30d5\u30a9\u30fc\u30e0 --&gt;\n    &lt;div id=\"creditCardFields\" class=\"payment-fields\" \n         style=\"display: {{ old('payment_method') === 'credit_card' ? 'block' : 'none' }}\"&gt;\n        &lt;div class=\"form-group\"&gt;\n            &lt;label for=\"card_number\"&gt;\u30ab\u30fc\u30c9\u756a\u53f7&lt;\/label&gt;\n            &lt;input type=\"text\" \n                   name=\"card_number\" \n                   value=\"{{ old('card_number') }}\"\n                   class=\"form-control @error('card_number') is-invalid @enderror\"&gt;\n            @error('card_number')\n                &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n            @enderror\n        &lt;\/div&gt;\n        &lt;!-- \u6709\u52b9\u671f\u9650 --&gt;\n        &lt;div class=\"form-row\"&gt;\n            &lt;div class=\"col\"&gt;\n                &lt;label for=\"expiry_month\"&gt;\u6709\u52b9\u671f\u9650\uff08\u6708\uff09&lt;\/label&gt;\n                &lt;input type=\"number\" \n                       name=\"expiry_month\" \n                       value=\"{{ old('expiry_month') }}\"\n                       class=\"form-control @error('expiry_month') is-invalid @enderror\"&gt;\n                @error('expiry_month')\n                    &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n                @enderror\n            &lt;\/div&gt;\n            &lt;div class=\"col\"&gt;\n                &lt;label for=\"expiry_year\"&gt;\u6709\u52b9\u671f\u9650\uff08\u5e74\uff09&lt;\/label&gt;\n                &lt;input type=\"number\" \n                       name=\"expiry_year\" \n                       value=\"{{ old('expiry_year') }}\"\n                       class=\"form-control @error('expiry_year') is-invalid @enderror\"&gt;\n                @error('expiry_year')\n                    &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n                @enderror\n            &lt;\/div&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n\n    &lt;!-- \u9280\u884c\u632f\u8fbc\u60c5\u5831\u30d5\u30a9\u30fc\u30e0 --&gt;\n    &lt;div id=\"bankTransferFields\" class=\"payment-fields\"\n         style=\"display: {{ old('payment_method') === 'bank_transfer' ? 'block' : 'none' }}\"&gt;\n        &lt;div class=\"form-group\"&gt;\n            &lt;label for=\"bank_name\"&gt;\u9280\u884c\u540d&lt;\/label&gt;\n            &lt;input type=\"text\" \n                   name=\"bank_name\" \n                   value=\"{{ old('bank_name') }}\"\n                   class=\"form-control @error('bank_name') is-invalid @enderror\"&gt;\n            @error('bank_name')\n                &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n            @enderror\n        &lt;\/div&gt;\n        &lt;!-- \u305d\u306e\u4ed6\u306e\u9280\u884c\u632f\u8fbc\u95a2\u9023\u30d5\u30a3\u30fc\u30eb\u30c9 --&gt;\n    &lt;\/div&gt;\n&lt;\/form&gt;\n\n&lt;script&gt;\ndocument.getElementById('payment_method').addEventListener('change', function() {\n    \/\/ \u652f\u6255\u3044\u65b9\u6cd5\u306b\u5fdc\u3058\u3066\u30d5\u30a9\u30fc\u30e0\u306e\u8868\u793a\u3092\u5207\u308a\u66ff\u3048\n    const creditCardFields = document.getElementById('creditCardFields');\n    const bankTransferFields = document.getElementById('bankTransferFields');\n\n    if (this.value === 'credit_card') {\n        creditCardFields.style.display = 'block';\n        bankTransferFields.style.display = 'none';\n    } else if (this.value === 'bank_transfer') {\n        creditCardFields.style.display = 'none';\n        bankTransferFields.style.display = 'block';\n    } else {\n        creditCardFields.style.display = 'none';\n        bankTransferFields.style.display = 'none';\n    }\n});\n&lt;\/script&gt;<\/pre>\n\n\n\n<p>\u3053\u306e\u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6761\u4ef6\u4ed8\u304d\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30a9\u30fc\u30e0\u306e\u72b6\u614b\u306b\u5fdc\u3058\u3066\u52d5\u7684\u306b\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u3092\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u5fc5\u8981\u306a\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u307f\u3092\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d5\u30a9\u30fc\u30e0\u306e\u52d5\u7684\u8868\u793a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JavaScript\u3067\u9069\u5207\u306a\u30d5\u30a9\u30fc\u30e0\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u8868\u793a<\/li>\n\n\n\n<li>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u6642\u3082\u9078\u629e\u72b6\u614b\u3092\u7dad\u6301<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u8868\u793a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5404\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5bfe\u5fdc\u3059\u308b\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a<\/li>\n\n\n\n<li>\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u72b6\u614b\u306b\u5fdc\u3058\u305f\u30b9\u30bf\u30a4\u30ea\u30f3\u30b0<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>old()\u30d8\u30eb\u30d1\u30fc\u306e\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5168\u3066\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u5165\u529b\u5024\u3092\u4fdd\u6301<\/li>\n\n\n\n<li>\u6761\u4ef6\u5206\u5c90\u3067\u3082\u9069\u5207\u306b\u5024\u3092\u8868\u793a<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-13\">old()\u30d8\u30eb\u30d1\u30fc\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3068\u62e1\u5f35<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306e\u8a2d\u5b9a\u65b9\u6cd5<\/h3>\n\n\n\n<p>old()\u30d8\u30eb\u30d1\u30fc\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u8a2d\u5b9a\u306b\u306f\u3001\u8907\u6570\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u305f\u6700\u9069\u306a\u5b9f\u88c5\u65b9\u6cd5\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/SettingsController.php\nclass SettingsController extends Controller\n{\n    public function edit(Request $request)\n    {\n        \/\/ \u30e6\u30fc\u30b6\u30fc\u306e\u73fe\u5728\u306e\u8a2d\u5b9a\u3092\u53d6\u5f97\n        $settings = auth()-&gt;user()-&gt;settings;\n\n        \/\/ \u30c7\u30d5\u30a9\u30eb\u30c8\u8a2d\u5b9a\u306e\u5b9a\u7fa9\n        $defaultSettings = [\n            'theme' =&gt; 'light',\n            'notifications' =&gt; [\n                'email' =&gt; true,\n                'push' =&gt; false,\n                'frequency' =&gt; 'daily'\n            ],\n            'display' =&gt; [\n                'sidebar' =&gt; true,\n                'language' =&gt; 'ja'\n            ]\n        ];\n\n        \/\/ \u73fe\u5728\u306e\u8a2d\u5b9a\u3068\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u30de\u30fc\u30b8\n        $mergedSettings = array_merge($defaultSettings, $settings-&gt;toArray());\n\n        return view('settings.edit', compact('mergedSettings'));\n    }\n\n    public function update(Request $request)\n    {\n        $validated = $request-&gt;validate([\n            'theme' =&gt; 'required|in:light,dark',\n            'notifications.email' =&gt; 'boolean',\n            'notifications.push' =&gt; 'boolean',\n            'notifications.frequency' =&gt; 'required|in:daily,weekly,monthly',\n            'display.sidebar' =&gt; 'boolean',\n            'display.language' =&gt; 'required|in:ja,en,zh'\n        ]);\n\n        \/\/ \u8a2d\u5b9a\u3092\u66f4\u65b0\n        auth()-&gt;user()-&gt;settings()-&gt;update($validated);\n\n        return redirect()\n            -&gt;route('settings.edit')\n            -&gt;with('success', '\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f');\n    }\n}<\/pre>\n\n\n\n<p>\u30d3\u30e5\u30fc\u3067\u306e\u5b9f\u88c5\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/settings\/edit.blade.php --&gt;\n&lt;form method=\"POST\" action=\"{{ route('settings.update') }}\"&gt;\n    @csrf\n    @method('PUT')\n\n    &lt;!-- \u30c6\u30fc\u30de\u8a2d\u5b9a --&gt;\n    &lt;div class=\"form-group\"&gt;\n        &lt;label for=\"theme\"&gt;\u30c6\u30fc\u30de&lt;\/label&gt;\n        &lt;select name=\"theme\" \n                class=\"form-control @error('theme') is-invalid @enderror\"&gt;\n            &lt;option value=\"light\" \n                    {{ old('theme', $mergedSettings['theme']) === 'light' ? 'selected' : '' }}&gt;\n                \u30e9\u30a4\u30c8\u30e2\u30fc\u30c9\n            &lt;\/option&gt;\n            &lt;option value=\"dark\" \n                    {{ old('theme', $mergedSettings['theme']) === 'dark' ? 'selected' : '' }}&gt;\n                \u30c0\u30fc\u30af\u30e2\u30fc\u30c9\n            &lt;\/option&gt;\n        &lt;\/select&gt;\n        @error('theme')\n            &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n        @enderror\n    &lt;\/div&gt;\n\n    &lt;!-- \u901a\u77e5\u8a2d\u5b9a\u30b0\u30eb\u30fc\u30d7 --&gt;\n    &lt;fieldset&gt;\n        &lt;legend&gt;\u901a\u77e5\u8a2d\u5b9a&lt;\/legend&gt;\n\n        &lt;!-- \u30e1\u30fc\u30eb\u901a\u77e5 --&gt;\n        &lt;div class=\"custom-control custom-switch\"&gt;\n            &lt;input type=\"hidden\" name=\"notifications[email]\" value=\"0\"&gt;\n            &lt;input type=\"checkbox\" \n                   class=\"custom-control-input\" \n                   id=\"notifications_email\"\n                   name=\"notifications[email]\" \n                   value=\"1\"\n                   {{ old('notifications.email', $mergedSettings['notifications']['email']) ? 'checked' : '' }}&gt;\n            &lt;label class=\"custom-control-label\" for=\"notifications_email\"&gt;\n                \u30e1\u30fc\u30eb\u901a\u77e5\u3092\u6709\u52b9\u306b\u3059\u308b\n            &lt;\/label&gt;\n        &lt;\/div&gt;\n\n        &lt;!-- \u901a\u77e5\u983b\u5ea6 --&gt;\n        &lt;div class=\"form-group mt-3\"&gt;\n            &lt;label for=\"notifications_frequency\"&gt;\u901a\u77e5\u983b\u5ea6&lt;\/label&gt;\n            &lt;select name=\"notifications[frequency]\" \n                    id=\"notifications_frequency\"\n                    class=\"form-control @error('notifications.frequency') is-invalid @enderror\"&gt;\n                @foreach(['daily' =&gt; '\u6bce\u65e5', 'weekly' =&gt; '\u6bce\u9031', 'monthly' =&gt; '\u6bce\u6708'] as $value =&gt; $label)\n                    &lt;option value=\"{{ $value }}\"\n                            {{ old('notifications.frequency', $mergedSettings['notifications']['frequency']) === $value ? 'selected' : '' }}&gt;\n                        {{ $label }}\n                    &lt;\/option&gt;\n                @endforeach\n            &lt;\/select&gt;\n            @error('notifications.frequency')\n                &lt;div class=\"invalid-feedback\"&gt;{{ $message }}&lt;\/div&gt;\n            @enderror\n        &lt;\/div&gt;\n    &lt;\/fieldset&gt;\n&lt;\/form&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-15\">\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u3068\u306e\u9023\u643a\u624b\u6cd5<\/h3>\n\n\n\n<p>old()\u30d8\u30eb\u30d1\u30fc\u306f\u30bb\u30c3\u30b7\u30e7\u30f3\u3068\u5bc6\u63a5\u306b\u9023\u643a\u3057\u3066\u3044\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u3001\u3088\u308a\u9ad8\u5ea6\u306a\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u3068\u306e\u9023\u643a\u65b9\u6cd5\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/WizardController.php\nclass WizardController extends Controller\n{\n    \/**\n     * \u30a6\u30a3\u30b6\u30fc\u30c9\u5f62\u5f0f\u306e\u30d5\u30a9\u30fc\u30e0\u3092\u51e6\u7406\u3059\u308b\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\n     *\/\n    public function step1(Request $request)\n    {\n        \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u304b\u3089\u30b9\u30c6\u30c3\u30d71\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\n        $stepData = $request-&gt;session()-&gt;get('wizard.step1', []);\n\n        \/\/ \u30d5\u30e9\u30c3\u30b7\u30e5\u30c7\u30fc\u30bf\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u53e4\u3044\u30c7\u30fc\u30bf\u3092\u512a\u5148\n        $data = array_merge($stepData, old() ?: []);\n\n        return view('wizard.step1', compact('data'));\n    }\n\n    public function storeStep1(Request $request)\n    {\n        $validated = $request-&gt;validate([\n            'company_name' =&gt; 'required|string|max:255',\n            'business_type' =&gt; 'required|in:corporation,sole_proprietorship',\n            'establishment_date' =&gt; 'required|date',\n        ]);\n\n        \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\n        $request-&gt;session()-&gt;put('wizard.step1', $validated);\n\n        return redirect()-&gt;route('wizard.step2');\n    }\n\n    public function step2(Request $request)\n    {\n        \/\/ \u30b9\u30c6\u30c3\u30d71\u304c\u5b8c\u4e86\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\n        if (!$request-&gt;session()-&gt;has('wizard.step1')) {\n            return redirect()\n                -&gt;route('wizard.step1')\n                -&gt;with('error', '\u6700\u521d\u306e\u30b9\u30c6\u30c3\u30d7\u304b\u3089\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044');\n        }\n\n        \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u304b\u3089\u30b9\u30c6\u30c3\u30d72\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\n        $stepData = $request-&gt;session()-&gt;get('wizard.step2', []);\n\n        \/\/ \u30d5\u30e9\u30c3\u30b7\u30e5\u30c7\u30fc\u30bf\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u53e4\u3044\u30c7\u30fc\u30bf\u3092\u512a\u5148\n        $data = array_merge($stepData, old() ?: []);\n\n        return view('wizard.step2', compact('data'));\n    }\n\n    public function storeStep2(Request $request)\n    {\n        $validated = $request-&gt;validate([\n            'representative_name' =&gt; 'required|string|max:255',\n            'phone' =&gt; 'required|string',\n            'email' =&gt; 'required|email',\n        ]);\n\n        \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\n        $request-&gt;session()-&gt;put('wizard.step2', $validated);\n\n        \/\/ \u5168\u3066\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3066\u51e6\u7406\n        $allData = [\n            'step1' =&gt; $request-&gt;session()-&gt;get('wizard.step1'),\n            'step2' =&gt; $validated,\n        ];\n\n        try {\n            \/\/ \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\n            $company = Company::create($allData['step1']);\n            $company-&gt;representative()-&gt;create($allData['step2']);\n\n            \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u30af\u30ea\u30a2\n            $request-&gt;session()-&gt;forget('wizard');\n\n            return redirect()\n                -&gt;route('dashboard')\n                -&gt;with('success', '\u4f1a\u793e\u60c5\u5831\u3092\u767b\u9332\u3057\u307e\u3057\u305f');\n\n        } catch (\\Exception $e) {\n            return back()\n                -&gt;withInput()\n                -&gt;with('error', '\u767b\u9332\u306b\u5931\u6557\u3057\u307e\u3057\u305f');\n        }\n    }\n}<\/pre>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u30bb\u30c3\u30b7\u30e7\u30f3\u30c9\u30e9\u30a4\u30d0\u30fc\u3068\u306e\u9023\u643a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Providers\/AppServiceProvider.php\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Support\\Facades\\Session;\n\nclass AppServiceProvider extends ServiceProvider\n{\n    public function boot()\n    {\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u30bb\u30c3\u30b7\u30e7\u30f3\u30b7\u30ea\u30a2\u30e9\u30a4\u30b6\u30fc\u306e\u767b\u9332\n        Session::extend('custom', function ($app) {\n            return new CustomSessionHandler(\n                $app['config']['session.connection']\n            );\n        });\n    }\n}\n\n\/\/ app\/Services\/CustomSessionHandler.php\nuse Illuminate\\Session\\DatabaseSessionHandler;\n\nclass CustomSessionHandler extends DatabaseSessionHandler\n{\n    protected function getDefaultPayload($data)\n    {\n        $payload = parent::getDefaultPayload($data);\n\n        \/\/ old()\u30d8\u30eb\u30d1\u30fc\u3067\u4f7f\u7528\u3055\u308c\u308b_old_input\u30ad\u30fc\u306e\u51e6\u7406\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\n        if (isset($payload['_old_input'])) {\n            \/\/ \u6a5f\u5bc6\u60c5\u5831\u3092\u30de\u30b9\u30af\n            $payload['_old_input'] = $this-&gt;maskSensitiveData(\n                $payload['_old_input']\n            );\n        }\n\n        return $payload;\n    }\n\n    protected function maskSensitiveData($data)\n    {\n        \/\/ \u6a5f\u5bc6\u60c5\u5831\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u30de\u30b9\u30af\n        $sensitiveFields = ['password', 'credit_card', 'security_code'];\n\n        foreach ($sensitiveFields as $field) {\n            if (isset($data[$field])) {\n                $data[$field] = str_repeat('*', strlen($data[$field]));\n            }\n        }\n\n        return $data;\n    }\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306e\u512a\u5148\u9806\u4f4d<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>old()\u306e\u5024\u304c\u6700\u512a\u5148<\/li>\n\n\n\n<li>\u6b21\u306b\u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\u3055\u308c\u305f\u5024<\/li>\n\n\n\n<li>\u6700\u5f8c\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u8a2d\u5b9a\u5024<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u306e\u6226\u7565<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8907\u6570\u30b9\u30c6\u30c3\u30d7\u3067\u306e\u30c7\u30fc\u30bf\u4fdd\u6301<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u6642\u306e\u30c7\u30fc\u30bf\u5fa9\u5143<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6a5f\u5bc6\u60c5\u5831\u306e\u9069\u5207\u306a\u51e6\u7406<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u306e\u6697\u53f7\u5316<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u30c7\u30fc\u30bf\u306e\u524a\u9664<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u8003\u616e<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u5fc5\u8981\u306a\u30c7\u30fc\u30bf\u306e\u307f\u3092\u4fdd\u6301<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u306e\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-16\">old()\u30d8\u30eb\u30d1\u30fc\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3068\u30c7\u30fc\u30bf\u30b5\u30cb\u30bf\u30a4\u30ba<\/h3>\n\n\n\n<p>old()\u30d8\u30eb\u30d1\u30fc\u3092\u4f7f\u7528\u3059\u308b\u969b\u306f\u3001\u9069\u5207\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u304c\u91cd\u8981\u3067\u3059\u3002\u4ee5\u4e0b\u306b\u3001\u5b89\u5168\u306a\u5b9f\u88c5\u306e\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Controllers\/ArticleController.php\nclass ArticleController extends Controller\n{\n    public function store(Request $request)\n    {\n        \/\/ 1. \u5165\u529b\u5024\u306e\u691c\u8a3c\u3068\u30b5\u30cb\u30bf\u30a4\u30ba\n        $validated = $request-&gt;validate([\n            'title' =&gt; ['required', 'string', 'max:255', 'not_regex:\/[&lt;&gt;]\/'],\n            'content' =&gt; ['required', 'string', new SafeHtml],\n            'tags' =&gt; ['array', 'max:5'],\n            'tags.*' =&gt; ['string', 'max:20', 'alpha_dash'],\n            'status' =&gt; ['required', 'in:draft,published'],\n        ]);\n\n        \/\/ 2. XSS\u5bfe\u7b56\n        $validated['title'] = strip_tags($validated['title']);\n\n        \/\/ 3. HTML\u30d1\u30fc\u30b8\u30f3\u30b0\uff08\u8a31\u53ef\u3055\u308c\u305f\u8981\u7d20\u306e\u307f\u6b8b\u3059\uff09\n        $validated['content'] = clean($validated['content'], [\n            'allowed_tags' =&gt; ['p', 'b', 'i', 'u', 'a', 'ul', 'ol', 'li'],\n            'allowed_attributes' =&gt; ['href', 'title']\n        ]);\n\n        try {\n            DB::beginTransaction();\n\n            \/\/ 4. \u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\n            $article = Article::create([\n                'user_id' =&gt; auth()-&gt;id(),\n                'title' =&gt; $validated['title'],\n                'content' =&gt; $validated['content'],\n                'status' =&gt; $validated['status']\n            ]);\n\n            \/\/ 5. \u30bf\u30b0\u306e\u95a2\u9023\u4ed8\u3051\n            if (isset($validated['tags'])) {\n                $tags = collect($validated['tags'])-&gt;map(function ($tagName) {\n                    return Tag::firstOrCreate(['name' =&gt; $tagName]);\n                });\n                $article-&gt;tags()-&gt;sync($tags-&gt;pluck('id'));\n            }\n\n            DB::commit();\n            return redirect()\n                -&gt;route('articles.show', $article)\n                -&gt;with('success', '\u8a18\u4e8b\u3092\u4fdd\u5b58\u3057\u307e\u3057\u305f');\n\n        } catch (\\Exception $e) {\n            DB::rollBack();\n            \/\/ 6. \u30a8\u30e9\u30fc\u6642\u306e\u5b89\u5168\u306a\u5165\u529b\u5024\u306e\u4fdd\u6301\n            return back()\n                -&gt;withInput($this-&gt;sanitizeOldInput($request-&gt;all()))\n                -&gt;with('error', '\u8a18\u4e8b\u306e\u4fdd\u5b58\u306b\u5931\u6557\u3057\u307e\u3057\u305f');\n        }\n    }\n\n    \/**\n     * old()\u30d8\u30eb\u30d1\u30fc\u3067\u4fdd\u6301\u3059\u308b\u5024\u3092\u5b89\u5168\u306b\u3059\u308b\n     *\/\n    private function sanitizeOldInput(array $input): array\n    {\n        \/\/ \u6a5f\u5bc6\u60c5\u5831\u306e\u524a\u9664\n        $sensitiveFields = ['password', 'token', 'api_key'];\n        foreach ($sensitiveFields as $field) {\n            unset($input[$field]);\n        }\n\n        \/\/ \u5927\u304d\u306a\u30c7\u30fc\u30bf\u306e\u5236\u9650\n        if (isset($input['content']) &amp;&amp; strlen($input['content']) &gt; 1000) {\n            $input['content'] = substr($input['content'], 0, 1000) . '...';\n        }\n\n        \/\/ \u914d\u5217\u30c7\u30fc\u30bf\u306e\u30b5\u30cb\u30bf\u30a4\u30ba\n        if (isset($input['tags']) &amp;&amp; is_array($input['tags'])) {\n            $input['tags'] = array_map(function ($tag) {\n                return strip_tags($tag);\n            }, $input['tags']);\n        }\n\n        return $input;\n    }\n}\n\n\/\/ app\/Rules\/SafeHtml.php\nclass SafeHtml implements Rule\n{\n    public function passes($attribute, $value)\n    {\n        \/\/ \u5371\u967a\u306aHTML\u30d1\u30bf\u30fc\u30f3\u3092\u30c1\u30a7\u30c3\u30af\n        $dangerous_patterns = [\n            '\/&lt;script\\b[^&gt;]*&gt;(.*?)&lt;\\\/script&gt;\/is',\n            '\/&lt;iframe\\b[^&gt;]*&gt;(.*?)&lt;\\\/iframe&gt;\/is',\n            '\/on\\w+=\"[^\"]*\"\/',\n            '\/javascript:\/i'\n        ];\n\n        foreach ($dangerous_patterns as $pattern) {\n            if (preg_match($pattern, $value)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    public function message()\n    {\n        return '\u5b89\u5168\u3067\u306a\u3044HTML\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002';\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>old()\u30d8\u30eb\u30d1\u30fc\u3092\u52b9\u7387\u7684\u306b\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\u3092\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Middleware\/OptimizeOldInput.php\nclass OptimizeOldInput\n{\n    \/**\n     * \u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\u3059\u308bold\u5165\u529b\u3092\u6700\u9069\u5316\n     *\/\n    public function handle($request, Closure $next)\n    {\n        $response = $next($request);\n\n        if ($request-&gt;session()-&gt;has('_old_input')) {\n            $oldInput = $request-&gt;session()-&gt;get('_old_input');\n\n            \/\/ 1. \u5927\u304d\u306a\u30c7\u30fc\u30bf\u306e\u5236\u9650\n            $oldInput = $this-&gt;limitLargeData($oldInput);\n\n            \/\/ 2. \u4e0d\u8981\u306a\u30c7\u30fc\u30bf\u306e\u524a\u9664\n            $oldInput = $this-&gt;removeUnnecessaryData($oldInput);\n\n            \/\/ 3. \u6700\u9069\u5316\u3055\u308c\u305f\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\n            $request-&gt;session()-&gt;put('_old_input', $oldInput);\n        }\n\n        return $response;\n    }\n\n    private function limitLargeData($data)\n    {\n        \/\/ \u30c6\u30ad\u30b9\u30c8\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u30b5\u30a4\u30ba\u5236\u9650\n        $maxLength = config('app.old_input_max_length', 1000);\n\n        array_walk_recursive($data, function (&amp;$value) use ($maxLength) {\n            if (is_string($value) &amp;&amp; strlen($value) &gt; $maxLength) {\n                $value = substr($value, 0, $maxLength);\n            }\n        });\n\n        return $data;\n    }\n\n    private function removeUnnecessaryData($data)\n    {\n        \/\/ \u9664\u5916\u3059\u308b\u30ad\u30fc\n        $excludeKeys = [\n            '_token',\n            '_method',\n            'password',\n            'password_confirmation',\n            'current_password',\n            'files',\n            'images'\n        ];\n\n        foreach ($excludeKeys as $key) {\n            unset($data[$key]);\n        }\n\n        return $data;\n    }\n}\n\n\/\/ app\/Providers\/AppServiceProvider.php\nclass AppServiceProvider extends ServiceProvider\n{\n    public function boot()\n    {\n        \/\/ old()\u30d8\u30eb\u30d1\u30fc\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\n        $this-&gt;optimizeOldHelper();\n    }\n\n    private function optimizeOldHelper()\n    {\n        \/\/ 1. \u30bb\u30c3\u30b7\u30e7\u30f3\u30c9\u30e9\u30a4\u30d0\u30fc\u306e\u6700\u9069\u5316\n        if (config('session.driver') === 'database') {\n            Schema::table('sessions', function (Blueprint $table) {\n                $table-&gt;index('last_activity');\n            });\n        }\n\n        \/\/ 2. \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6d3b\u7528\n        if (config('session.driver') === 'redis') {\n            $this-&gt;app['redis']-&gt;client()-&gt;setOption(\n                Redis::OPT_SERIALIZER,\n                Redis::SERIALIZER_IGBINARY\n            );\n        }\n\n        \/\/ 3. \u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\n        $this-&gt;app['config']-&gt;set(\n            'session.gc_probability',\n            [1, 100]\n        );\n    }\n}<\/pre>\n\n\n\n<p>\u5b9f\u88c5\u306b\u304a\u3051\u308b\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5165\u529b\u5024\u306e\u5fb9\u5e95\u7684\u306a\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>XSS\u5bfe\u7b56\u306e\u5b9f\u65bd<\/li>\n\n\n\n<li>\u6a5f\u5bc6\u60c5\u5831\u306e\u9069\u5207\u306a\u51e6\u7406<\/li>\n\n\n\n<li>HTML\u306e\u5b89\u5168\u306a\u53d6\u308a\u6271\u3044<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u306e\u6700\u5c0f\u5316<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u30c7\u30fc\u30bf\u306e\u524a\u9664<\/li>\n\n\n\n<li>\u5927\u304d\u306a\u30c7\u30fc\u30bf\u306e\u5236\u9650<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u52b9\u679c\u7684\u306a\u5229\u7528<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30fc\u30bf\u306e\u6574\u5408\u6027<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u7ba1\u7406<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u5fa9\u5143<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u306e\u6574\u7406\u3068\u69cb\u9020\u5316<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u306e\u4e00\u5143\u7ba1\u7406<\/li>\n\n\n\n<li>\u660e\u78ba\u306a\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u306b\u5f93\u3046\u3053\u3068\u3067\u3001\u5b89\u5168\u3067\u52b9\u7387\u7684\u306a\u30d5\u30a9\u30fc\u30e0\u51e6\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4fdd\u5b88\u6027\u3082\u5411\u4e0a\u3057\u3001\u5c06\u6765\u306e\u6a5f\u80fd\u62e1\u5f35\u306b\u3082\u5bfe\u5fdc\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-19\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30ac\u30a4\u30c9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-20\">\u3088\u304f\u3042\u308b\u554f\u984c\u3068\u89e3\u6c7a\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-21\">1. \u5165\u529b\u5024\u304c\u4fdd\u6301\u3055\u308c\u306a\u3044\u554f\u984c<\/h4>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>\uff1a\u30d5\u30a9\u30fc\u30e0\u9001\u4fe1\u5f8c\u3001\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u3066\u3082\u5165\u529b\u5024\u304c\u4fdd\u6301\u3055\u308c\u306a\u3044<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u8aa4\u3063\u305f\u5b9f\u88c5\npublic function store(Request $request)\n{\n    $validated = $request-&gt;validate([\n        'title' =&gt; 'required|string',\n        'content' =&gt; 'required|string'\n    ]);\n\n    \/\/ \u30a8\u30e9\u30fc\u6642\u306b\u5165\u529b\u5024\u304c\u4fdd\u6301\u3055\u308c\u306a\u3044\n    return redirect()-&gt;back();\n}\n\n\/\/ \u6b63\u3057\u3044\u5b9f\u88c5\npublic function store(Request $request)\n{\n    $validated = $request-&gt;validate([\n        'title' =&gt; 'required|string',\n        'content' =&gt; 'required|string'\n    ]);\n\n    \/\/ withInput()\u30e1\u30bd\u30c3\u30c9\u3067\u5165\u529b\u5024\u3092\u4fdd\u6301\n    return redirect()-&gt;back()-&gt;withInput();\n}<\/pre>\n\n\n\n<p><strong>\u89e3\u6c7a\u65b9\u6cd5<\/strong>\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>withInput()<\/code>\u30e1\u30bd\u30c3\u30c9\u306e\u4f7f\u7528\u3092\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u8a2d\u5b9a\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306e\u8a2d\u5b9a\u78ba\u8a8d<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-22\">2. \u914d\u5217\u30c7\u30fc\u30bf\u306e\u53d6\u308a\u6271\u3044\u306e\u554f\u984c<\/h4>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>\uff1a\u914d\u5217\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u304c\u6b63\u3057\u304f\u4fdd\u6301\u3055\u308c\u306a\u3044<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u8aa4\u3063\u305f\u5b9f\u88c5 --&gt;\n&lt;input type=\"text\" name=\"items[]\" value=\"{{ old('items') }}\"&gt;\n\n&lt;!-- \u6b63\u3057\u3044\u5b9f\u88c5 --&gt;\n@foreach(old('items', []) as $index =&gt; $item)\n    &lt;input type=\"text\" \n           name=\"items[]\" \n           value=\"{{ $item }}\"&gt;\n@endforeach\n\n&lt;!-- \u30cd\u30b9\u30c8\u3055\u308c\u305f\u914d\u5217\u306e\u5834\u5408 --&gt;\n&lt;input type=\"text\" \n       name=\"data[name]\" \n       value=\"{{ old('data.category.name') }}\"&gt;<\/pre>\n\n\n\n<p><strong>\u89e3\u6c7a\u65b9\u6cd5<\/strong>\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u914d\u5217\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a<\/li>\n\n\n\n<li>\u30c9\u30c3\u30c8\u8a18\u6cd5\u306e\u4f7f\u7528<\/li>\n\n\n\n<li>\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-23\">3. \u5927\u304d\u306a\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3067\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c<\/h4>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>\uff1a\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u6301\u3064\u30d5\u30a9\u30fc\u30e0\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u4f4e\u4e0b<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u554f\u984c\u306e\u3042\u308b\u5b9f\u88c5\npublic function store(Request $request)\n{\n    \/\/ \u5168\u30c7\u30fc\u30bf\u3092\u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\n    return redirect()-&gt;back()-&gt;withInput();\n}\n\n\/\/ \u6700\u9069\u5316\u3055\u308c\u305f\u5b9f\u88c5\npublic function store(Request $request)\n{\n    \/\/ \u5fc5\u8981\u306a\u30c7\u30fc\u30bf\u306e\u307f\u3092\u9078\u629e\u3057\u3066\u4fdd\u5b58\n    $input = $request-&gt;only([\n        'title', 'content', 'tags',\n        'metadata.author', 'metadata.category'\n    ]);\n\n    return redirect()-&gt;back()-&gt;withInput($input);\n}<\/pre>\n\n\n\n<p><strong>\u89e3\u6c7a\u65b9\u6cd5<\/strong>\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Http\/Middleware\/OptimizeOldInputMiddleware.php\nclass OptimizeOldInputMiddleware\n{\n    public function handle($request, Closure $next)\n    {\n        $response = $next($request);\n\n        if ($request-&gt;session()-&gt;has('_old_input')) {\n            $oldInput = $request-&gt;session()-&gt;get('_old_input');\n\n            \/\/ \u5927\u304d\u306a\u30c7\u30fc\u30bf\u306e\u5236\u9650\n            foreach ($oldInput as $key =&gt; $value) {\n                if (is_string($value) &amp;&amp; strlen($value) &gt; 1000) {\n                    $oldInput[$key] = substr($value, 0, 1000);\n                }\n            }\n\n            $request-&gt;session()-&gt;put('_old_input', $oldInput);\n        }\n\n        return $response;\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-24\">4. \u30bb\u30c3\u30b7\u30e7\u30f3\u95a2\u9023\u306e\u554f\u984c<\/h4>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>\uff1a\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u4e88\u671f\u305b\u305a\u5931\u52b9\u3059\u308b\u3001\u307e\u305f\u306f\u5024\u304c\u6d88\u3048\u308b<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u554f\u984c\u306e\u3042\u308b\u5b9f\u88c5\uff1a\u30bb\u30c3\u30b7\u30e7\u30f3\u8a2d\u5b9a\u304c\u4e0d\u9069\u5207\n'lifetime' =&gt; 120,  \/\/ \u77ed\u3059\u304e\u308b\u30bb\u30c3\u30b7\u30e7\u30f3\u5bff\u547d\n'expire_on_close' =&gt; true,  \/\/ \u30d6\u30e9\u30a6\u30b6\u3092\u9589\u3058\u308b\u3068\u5373\u5ea7\u306b\u5931\u52b9\n\n\/\/ \u6539\u5584\u3055\u308c\u305f\u5b9f\u88c5\nreturn [\n    'driver' =&gt; env('SESSION_DRIVER', 'file'),\n    'lifetime' =&gt; env('SESSION_LIFETIME', 480),  \/\/ \u3088\u308a\u9577\u3044\u30bb\u30c3\u30b7\u30e7\u30f3\u5bff\u547d\n    'expire_on_close' =&gt; false,  \/\/ \u30d6\u30e9\u30a6\u30b6\u3092\u9589\u3058\u3066\u3082\u7dad\u6301\n    'encrypt' =&gt; true,\n    'secure' =&gt; true,\n];<\/pre>\n\n\n\n<p><strong>\u89e3\u6c7a\u65b9\u6cd5<\/strong>\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u8a2d\u5b9a\u306e\u898b\u76f4\u3057<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30c9\u30e9\u30a4\u30d0\u30fc\u306e\u9069\u5207\u306a\u9078\u629e<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u6539\u5584<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-25\">\u30c7\u30d0\u30c3\u30b0\u306e\u305f\u3081\u306eTips\u96c6<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-26\">1. \u30c7\u30d0\u30c3\u30b0\u7528\u306e\u30d8\u30eb\u30d1\u30fc\u95a2\u6570<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/helpers.php\nif (!function_exists('debug_old')) {\n    function debug_old($key = null)\n    {\n        $oldInput = session()-&gt;get('_old_input', []);\n\n        if ($key === null) {\n            dd($oldInput);\n        }\n\n        if (str_contains($key, '.')) {\n            $value = data_get($oldInput, $key);\n        } else {\n            $value = $oldInput[$key] ?? null;\n        }\n\n        dd($value);\n    }\n}\n\n\/\/ \u4f7f\u7528\u4f8b\npublic function create()\n{\n    \/\/ \u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u4fdd\u5b58\u3055\u308c\u305f\u5168\u3066\u306e\u53e4\u3044\u5165\u529b\u5024\u3092\u78ba\u8a8d\n    debug_old();\n\n    \/\/ \u7279\u5b9a\u306e\u30ad\u30fc\u306e\u5024\u3092\u78ba\u8a8d\n    debug_old('user.email');\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-27\">2. \u30c7\u30d0\u30c3\u30b0\u30d3\u30e5\u30fc\u306e\u4f5c\u6210<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- resources\/views\/components\/debug-old-input.blade.php --&gt;\n@if(config('app.debug'))\n    &lt;div class=\"debug-panel\"&gt;\n        &lt;h3&gt;Old Input Debug Information&lt;\/h3&gt;\n        &lt;pre&gt;{{ print_r(session()-&gt;get('_old_input', []), true) }}&lt;\/pre&gt;\n    &lt;\/div&gt;\n@endif\n\n&lt;!-- \u4f7f\u7528\u4f8b --&gt;\n&lt;form method=\"POST\" action=\"\/submit\"&gt;\n    @csrf\n    &lt;!-- \u30d5\u30a9\u30fc\u30e0\u30d5\u30a3\u30fc\u30eb\u30c9 --&gt;\n\n    @if(config('app.debug'))\n        &lt;x-debug-old-input \/&gt;\n    @endif\n&lt;\/form&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-28\">3. \u30ed\u30b0\u51fa\u529b\u306e\u6d3b\u7528<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ app\/Providers\/AppServiceProvider.php\npublic function boot()\n{\n    \/\/ old()\u30d8\u30eb\u30d1\u30fc\u306e\u4f7f\u7528\u3092\u30ed\u30b0\u306b\u8a18\u9332\n    if (config('app.debug')) {\n        $this-&gt;app['session.store']-&gt;extend('old_input', function ($app) {\n            return new class($app) {\n                public function put($key, $value)\n                {\n                    Log::debug('Old input stored', [\n                        'key' =&gt; $key,\n                        'value' =&gt; $value\n                    ]);\n\n                    parent::put($key, $value);\n                }\n            };\n        });\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-29\">4. \u5171\u901a\u306e\u30c7\u30d0\u30c3\u30b0\u554f\u984c\u3078\u306e\u5bfe\u51e6<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u306e\u78ba\u8a8d<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Route::get('\/debug\/session', function () {\n    if (config('app.debug')) {\n        return response()-&gt;json([\n            'session_data' =&gt; session()-&gt;all(),\n            'old_input' =&gt; session()-&gt;get('_old_input'),\n            'session_config' =&gt; config('session'),\n        ]);\n    }\n})-&gt;middleware('auth:admin');<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u306e\u691c\u8a3c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d5\u30a9\u30fc\u30e0\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u30c7\u30d0\u30c3\u30b0\u3092\u6709\u52b9\u5316\nclass ProductRequest extends FormRequest\n{\n    protected function failedValidation(Validator $validator)\n    {\n        if (config('app.debug')) {\n            Log::debug('Validation failed', [\n                'errors' =&gt; $validator-&gt;errors()-&gt;toArray(),\n                'input' =&gt; $this-&gt;all(),\n            ]);\n        }\n\n        parent::failedValidation($validator);\n    }\n}<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u624b\u6cd5\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001old()\u30d8\u30eb\u30d1\u30fc\u306b\u95a2\u9023\u3059\u308b\u554f\u984c\u3092\u52b9\u7387\u7684\u306b\u7279\u5b9a\u3057\u89e3\u6c7a\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u958b\u767a\u74b0\u5883\u3067\u306f\u3001\u30c7\u30d0\u30c3\u30b0\u30c4\u30fc\u30eb\u3092\u7a4d\u6975\u7684\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u554f\u984c\u306e\u65e9\u671f\u767a\u898b\u3068\u89e3\u6c7a\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,12],"tags":[],"class_list":{"0":"post-2688","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php-laravel","7":"category-php","8":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/2688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2688"}],"version-history":[{"count":2,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/2688\/revisions"}],"predecessor-version":[{"id":2690,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/2688\/revisions\/2690"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}