{"id":2971,"date":"2026-08-10T15:45:06","date_gmt":"2026-08-10T06:45:06","guid":{"rendered":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/?page_id=2971"},"modified":"2026-08-31T11:00:17","modified_gmt":"2026-08-31T02:00:17","slug":"laravel-06","status":"publish","type":"page","link":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/programming\/php\/laravel-06","title":{"rendered":"\u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3c"},"content":{"rendered":"<details>\n  <summary>\n    \u524d\u56de\u7d42\u4e86\u6642\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\n  <\/summary>\n  <p>Laravel\u3092\u4f7f\u3063\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n<div class='console'><pre>\n$ git clone https:\/\/kiku3.tsbio.info\/git\/study-laravel.git study_laravel\n<\/pre><\/div>\n\n<p>\u3053\u306e\u7ae0\u958b\u59cb\u6642\u70b9\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f chapt6 \u30d6\u30e9\u30f3\u30c1\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n<div class='console'><pre>\n$ git switch chapt6\n<\/pre><\/div>\n\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u81ea\u5206\u3067\u66f8\u3044\u3066\u3044\u304f\u5834\u5408\u306f\u3001\u81ea\u5206\u7528\u306e\u30d6\u30e9\u30f3\u30c1\u3092\u3064\u304f\u308b\u3068\u3088\u3044\u3067\u3059\u3002<\/p>\n<div class='console'><pre>\n$ git switch -c my6 chapt6\n<\/pre><\/div>\n\n<p>Laravel\u306e\u30b3\u30fc\u30c9\u306fsrc\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<\/details>\n\n\n<h2>\u8a8d\u8a3c\u306b\u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/h2>\n<p>\u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3c\u306b\u4f7f\u3046Laravel Breeze\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u7279\u306b\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3082\u306e\u3067\u306f\u306a\u304f\u3001\u30eb\u30fc\u30c8\u306a\u3069\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\n\u3053\u308c\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u3001\u6b21\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u4e0a\u66f8\u304d\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u3001\u30b3\u30d4\u30fc\u3092\u3064\u304f\u3063\u3066\u304a\u304d\u307e\u3059\u3002(web.php\u306f\u306a\u3044\u3068\u30a8\u30e9\u30fc\u304c\u3067\u308b)<\/p>\n<ul>\n<li>app.css -&gt; lab.css<\/li>\n<li>app.js -&gt; lab.css<\/li>\n<li>app.blade.php -&gt; lab.blade.php<\/li>\n<li>web.php -&gt; oligo.php<\/li>\n<\/ul>\n<div class='console'><pre>\n# composer require laravel\/breeze --dev\n# artisan breeze:install blade\n<\/pre><\/div>\n<h3>breeze\u306b\u5909\u66f4\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u4fee\u6b63<\/h3>\n<p>resources\/views\/layouts\/app.blade.php \u3092 breeze.blade.php\u306b\u5909\u66f4\u3057\u307e\u3059\u3002\u3064\u3044\u3067\u3001app\/View\/Components\/AppLayout.php\n\u306e <code>return view('layouts.app');<\/code> \u3092 <code>return view('layouts.blade');<\/code> \u306b\u4fee\u6b63\u3057\u307e\u3059\u3002lab.blade.php\u3092app.blade.php\u306b\u623b\u3057\u307e\u3059\u3002<\/p>\n<p><\/p>\n<div class='code'>\n  <h5 class=\"source-file\">app\/View\/Components\/AppLayout.php<\/h5>\n<pre >\n&lt;?php\n \nnamespace App\\View\\Components;\n \nuse Illuminate\\View\\Component;\nuse Illuminate\\View\\View;\n \nclass AppLayout extends Component\n{\n    \/**\n     * Get the view \/ contents that represents the component.\n     *\/\n    public function render(): View\n    {\n        return view(&#039;layouts.breeze&#039;); \/\/ layouts\/app.blade.php\u306f\u81ea\u5206\u7528\u306b\n    }\n}\n<\/pre>\n<\/div>\n<p><\/p>\n<div class='code'>\n  <h5 class=\"source-file\">resources\/css\/app.css<\/h5>\n<pre >\n@import &#039;tailwindcss&#039;;\n \n@source &#039;..\/..\/vendor\/laravel\/framework\/src\/Illuminate\/Pagination\/resources\/views\/*.blade.php&#039;;\n@source &#039;..\/..\/storage\/framework\/views\/*.php&#039;;\n \n@theme {\n    --font-sans: &#039;Instrument Sans&#039;, ui-sans-serif, system-ui, sans-serif, &#039;Apple Color Emoji&#039;, &#039;Segoe UI Emoji&#039;,\n        &#039;Segoe UI Symbol&#039;, &#039;Noto Color Emoji&#039;;\n}\n \n@import &#039;lab.css&#039;;\n@import &#039;oligo.css&#039;;\n<\/pre>\n<\/div>\n<p><\/p>\n<div class='code'>\n  <h5 class=\"source-file\">resources\/css\/lab.css<\/h5>\n<pre >\n.module-tab {\n    @apply\n        border border-black \/* \u67a0\u7dda\u306e\u8a2d\u5b9a *\/\n        first:rounded-l  \/* first: \u306b\u3088\u3063\u3066\u3001\u6700\u521d\u306e\u8981\u7d20\u306b\u9650\u5b9a\u3059\u308b\u3002\u5de6\u5074(-l)\u306e\u307f\u4e38\u3081\u308b(rounded)\u3002 *\/\n        last:rounded-r  \/* \u540c\u69d8\u306b\u6700\u5f8c\u306e\u67a0\u7dda\u306e\u53f3\u5074(-r)\u3092\u4e38\u3081\u308b\u3002 *\/\n        font-sans font-bold \n        px-6 bg-white  \/* \u6587\u5b57\u306e\u5de6\u53f3\u306e\u4f59\u767d(padding x)\u30926px\u3001\u80cc\u666f\u8272\u3092\u767d\u306b\u8a2d\u5b9a *\/\n        hover:bg-blue-500 hover:text-white \/* \u30db\u30d0\u30fc\u6642\u306e\u80cc\u666f\u8272\u3092\u9752\u3001\u6587\u5b57\u8272\u3092\u767d\u306b\u8a2d\u5b9a *\/\n    ;\n}\n \n.feature-tabs {\n    @apply flex;\n}\n.feature-tab {\n    @apply border-t border-x border-black rounded-t-md mx-1 px-6 font-sans font-bold;\n}\n \n.features {\n    @apply bg-white p-2 min-h-screen;\n}\n \nbutton {\n    @apply border-2 py-[0.05em] px-2 rounded shadow-sm shadow-gray-400;\n}\nbutton:active {\n    @apply shadow-none translate-y-[0.05em] translate-x-[0.05em];\n}\n \ninput[type=checkbox] {\n    @apply w-4 h-4;\n}\n<\/pre>\n<\/div>\n<p>lab.js\u306f\u305d\u306e\u307e\u307eapp.js\u306b\u623b\u3059<\/p>\n<h2>\u30e6\u30fc\u30b6\u30fc\u306e\u767b\u9332<\/h2>\n<p>\/register\u3092\u4f7f\u3063\u305f\u30e6\u30fc\u30b6\u30fc\u306e\u767b\u9332\u306fLaravel\u304b\u3089\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u3067\u3001\u4eca\u56de\u306f\u30d1\u30b9\u3002<\/p>\n<p>\u4ee3\u308f\u308a\u306b\u3001Model\/User\u304b\u3089\u76f4\u63a5\u767b\u9332\u3059\u308b\u3002<\/p>\n<div class='console'><pre>\n# .\/artisan tinker\n> $user = User::create(['name' => 'test user', 'email' => 'test@example.com', 'password' => 'secret'])\n> exit\n<\/pre><\/div>\n<p>\u3053\u308c\u3067\/login\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u3002<\/p>\n<h3>\u30ed\u30b0\u30a4\u30f3\u306e\u3057\u304f\u307f<\/h3>\n<p>routes\/web.php\u3092\u898b\u3066\u307f\u308b\u3068\u6b21\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u3002\n<\/p>\n<div class='code'>\n  <h5 class=\"source-file\">routes\/web.php<\/h5>\n<pre >\n&lt;?php\n \nuse App\\Http\\Controllers\\ProfileController;\nuse Illuminate\\Support\\Facades\\Route;\n \nRoute::get(&#039;\/&#039;, function () {\n    return view(&#039;welcome&#039;);\n});\n \nRoute::get(&#039;\/dashboard&#039;, function () {\n    return view(&#039;dashboard&#039;);\n})-&gt;middleware([&#039;auth&#039;, &#039;verified&#039;])-&gt;name(&#039;dashboard&#039;);\n \nRoute::middleware(&#039;auth&#039;)-&gt;group(function () {\n    Route::get(&#039;\/profile&#039;, [ProfileController::class, &#039;edit&#039;])-&gt;name(&#039;profile.edit&#039;);\n    Route::patch(&#039;\/profile&#039;, [ProfileController::class, &#039;update&#039;])-&gt;name(&#039;profile.update&#039;);\n    Route::delete(&#039;\/profile&#039;, [ProfileController::class, &#039;destroy&#039;])-&gt;name(&#039;profile.destroy&#039;);\n});\n \nrequire __DIR__.&#039;\/auth.php&#039;;\n<\/pre>\n<\/div>\n<p><\/p>\n<div class='code'>\n  <h5 class=\"source-file\">routes\/auth.php<\/h5>\n<pre >\n&lt;?php\n \nuse App\\Http\\Controllers\\Auth\\AuthenticatedSessionController;\nuse App\\Http\\Controllers\\Auth\\ConfirmablePasswordController;\nuse App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController;\nuse App\\Http\\Controllers\\Auth\\EmailVerificationPromptController;\nuse App\\Http\\Controllers\\Auth\\NewPasswordController;\nuse App\\Http\\Controllers\\Auth\\PasswordController;\nuse App\\Http\\Controllers\\Auth\\PasswordResetLinkController;\nuse App\\Http\\Controllers\\Auth\\RegisteredUserController;\nuse App\\Http\\Controllers\\Auth\\VerifyEmailController;\nuse Illuminate\\Support\\Facades\\Route;\n \nRoute::middleware(&#039;guest&#039;)-&gt;group(function () {\n    Route::get(&#039;register&#039;, [RegisteredUserController::class, &#039;create&#039;])\n        -&gt;name(&#039;register&#039;);\n \n    Route::post(&#039;register&#039;, [RegisteredUserController::class, &#039;store&#039;]);\n \n    Route::get(&#039;login&#039;, [AuthenticatedSessionController::class, &#039;create&#039;])\n        -&gt;name(&#039;login&#039;);\n \n    Route::post(&#039;login&#039;, [AuthenticatedSessionController::class, &#039;store&#039;]);\n \n    Route::get(&#039;forgot-password&#039;, [PasswordResetLinkController::class, &#039;create&#039;])\n        -&gt;name(&#039;password.request&#039;);\n \n    Route::post(&#039;forgot-password&#039;, [PasswordResetLinkController::class, &#039;store&#039;])\n        -&gt;name(&#039;password.email&#039;);\n \n    Route::get(&#039;reset-password\/{token}&#039;, [NewPasswordController::class, &#039;create&#039;])\n        -&gt;name(&#039;password.reset&#039;);\n \n    Route::post(&#039;reset-password&#039;, [NewPasswordController::class, &#039;store&#039;])\n        -&gt;name(&#039;password.store&#039;);\n});\n \nRoute::middleware(&#039;auth&#039;)-&gt;group(function () {\n    Route::get(&#039;verify-email&#039;, EmailVerificationPromptController::class)\n        -&gt;name(&#039;verification.notice&#039;);\n \n    Route::get(&#039;verify-email\/{id}\/{hash}&#039;, VerifyEmailController::class)\n        -&gt;middleware([&#039;signed&#039;, &#039;throttle:6,1&#039;])\n        -&gt;name(&#039;verification.verify&#039;);\n \n    Route::post(&#039;email\/verification-notification&#039;, [EmailVerificationNotificationController::class, &#039;store&#039;])\n        -&gt;middleware(&#039;throttle:6,1&#039;)\n        -&gt;name(&#039;verification.send&#039;);\n \n    Route::get(&#039;confirm-password&#039;, [ConfirmablePasswordController::class, &#039;show&#039;])\n        -&gt;name(&#039;password.confirm&#039;);\n \n    Route::post(&#039;confirm-password&#039;, [ConfirmablePasswordController::class, &#039;store&#039;]);\n \n    Route::put(&#039;password&#039;, [PasswordController::class, &#039;update&#039;])-&gt;name(&#039;password.update&#039;);\n \n    Route::post(&#039;logout&#039;, [AuthenticatedSessionController::class, &#039;destroy&#039;])\n        -&gt;name(&#039;logout&#039;);\n});\n<\/pre>\n<\/div>\n<p>\/login \u306f <code>routes\/auth.php<\/code> \u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3002\u3053\u3053\u3067<\/p>\n<div class='code'>\n  <pre >\nRoute::middleware(&#039;guest&#039;)-&gt;group(function () {\n  Route::get(&#039;login&#039;, [AuthenticatedSessionController::class, &#039;create&#039;])\n    -&gt;name(&#039;login&#039;);\n});\n<\/pre>\n<\/div>\n\u3068\u306a\u3063\u3066\u3044\u308b\u3002middleware(&#8216;guest&#8217;)\u3068\u3059\u308b\u3053\u3068\u3067\u3001\/login\u306b\u5230\u9054\u3067\u304d\u308b\u306e\u306fguest (\u8a8d\u8a3c\u3055\u308c\u3066\u3044\u306a\u3044)\u306b\u9650\u3089\u308c\u308b\u3002\n<p>login\u306e\u60c5\u5831\u306f <code>app\/Http\/Controllers\/Auth\/AuthenticatedSessionController.php<\/code> \u306b\u9001\u3089\u308c\u308b\u3002\u3053\u306e\u4e2d\u306e store \u30e1\u30bd\u30c3\u30c9\u4e2d\u3067\u3001 LoginRequest $response-&gt;authenticate() \u304c\u8a8d\u8a3c\u3092\u884c\u3063\u3066\u3044\u308b\u3002<\/p>\n<p>\u3055\u3089\u306b\u4e2d\u8eab\u3092\u307f\u3066\u3044\u304f\u3068\n<code>src\/app\/Http\/Requests\/Auth\/LoginRequest.php<\/code> \u3067\u3001Auth::attempt($this-&gt;only(&#8216;email&#8217;, &#8216;password&#8217;) \u3068\u3044\u3046\u51e6\u7406\u304c\u3042\u308a\u3001\u3053\u3053\u3067\u8a8d\u8a3c\u304c\u884c\u308f\u308c\u308b\u3002<\/p>\n<p>\u30d2\u30f3\u30c8: \u30ed\u30b0\u30a4\u30f3\u306bemail\u3067\u306f\u306a\u304fname\u3092\u4f7f\u3044\u305f\u3044\u3068\u304d\u306f\u3001LoginRequest\u306erules\u3067name\u3092\u8a2d\u5b9a\u3057\u3001attempt\u3067\u305d\u308c\u3092\u6e21\u3059\u3088\u3046\u306b\u3059\u308b\u3002\u30e6\u30fc\u30b6\u30fc\u306bID\u3092\u8a2d\u5b9a\u3057\u305f\u3044\u3068\u304d\u306f\u3001migration\/create_users_table.php\u3092\u66f8\u304d\u63db\u3048\u3066\u3001users\u306buid\u306a\u3069\u306e\u30ab\u30e9\u30e0\u3092\u8ffd\u52a0\u3057\u3001\u305d\u308c\u3092LoginRequest\u3067\u53d7\u3051\u53d6\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/p>\n<h2>\u8a8d\u8a3c\u6e08\u307f\u30e6\u30fc\u30b6\u30fc\u306b\u9650\u5b9a\u3059\u308b<\/h2>\n<p>\/oligo\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306b\u8a8d\u8a3c\u3092\u5fc5\u8981\u3068\u3059\u308b\u3088\u3046\u306b\u5909\u66f4\u3059\u308b\u3002<\/p>\n<p><\/p>\n<div class='code'>\n  <h5 class=\"source-file\">routes\/oligo.php<\/h5>\n<pre >\n&lt;?php\n \nuse Illuminate\\Support\\Facades\\Route;\nuse App\\Http\\Controllers\\OligoController;\n \n\/\/ \u30aa\u30ea\u30b4DNA\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\nRoute::middleware([&#039;auth&#039;, &#039;verified&#039;]) \/\/ \n    \/* auth\u3068verified\u3068\u3044\u3046\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3092\u901a\u904e\u3059\u308b\u3053\u3068\u3092\u8981\u6c42\n     * \u3053\u308c\u3089\u306e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306f vendor\/laravel\/framework\/src\/Illuminate\/Auth\/Middleware\/ \u306b\u5b58\u5728\u3059\u308b\u3002\n     * auth -&gt; Authenticate.php\n     * verified -&gt; EnsureEmailIsVerified.php\n     *\/\n    -&gt;prefix(&#039;\/oligo&#039;)\n    -&gt;as(&#039;web.oligo.&#039;)\n    -&gt;group(function (){\n        Route::get(&#039;\/&#039;, [OligoController::class, &#039;index&#039;])-&gt;name(&#039;index&#039;);\n        Route::get(&#039;\/search&#039;, [OligoController::class, &#039;search&#039;])-&gt;name(&#039;search&#039;);\n        Route::get(&#039;\/create&#039;, [OligoController::class, &#039;create&#039;])-&gt;name(&#039;create&#039;);\n        Route::post(&#039;\/&#039;, [OligoController::class, &#039;store&#039;])-&gt;name(&#039;store&#039;);\n \n        \/\/ \u7de8\u96c6\u30d5\u30a9\u30fc\u30e0\u3068\u30c7\u30fc\u30bf\u66f4\u65b0\n        Route::get(&#039;\/edit&#039;, [OligoController::class, &#039;edit&#039;])-&gt;name(&#039;edit&#039;);\n        Route::put(&#039;\/{item}&#039;, [OligoController::class, &#039;update&#039;])-&gt;name(&#039;update&#039;);\n    });\n<\/pre>\n<\/div>\n<p>\u3053\u308c\u3092web.php\u3067\u8aad\u307f\u8fbc\u3080\u3088\u3046\u306b\u3059\u308b<\/p>\n<p><\/p>\n<div class='code'>\n  <h5 class=\"source-file\">routes\/web.php<\/h5>\n<pre >\n&lt;?php\n \nuse App\\Http\\Controllers\\ProfileController;\nuse Illuminate\\Support\\Facades\\Route;\n \nRoute::get(&#039;\/&#039;, function () {\n    return view(&#039;welcome&#039;);\n});\n \nRoute::get(&#039;\/dashboard&#039;, function () {\n    return view(&#039;dashboard&#039;);\n})-&gt;middleware([&#039;auth&#039;, &#039;verified&#039;])-&gt;name(&#039;dashboard&#039;);\n \nRoute::middleware(&#039;auth&#039;)-&gt;group(function () {\n    Route::get(&#039;\/profile&#039;, [ProfileController::class, &#039;edit&#039;])-&gt;name(&#039;profile.edit&#039;);\n    Route::patch(&#039;\/profile&#039;, [ProfileController::class, &#039;update&#039;])-&gt;name(&#039;profile.update&#039;);\n    Route::delete(&#039;\/profile&#039;, [ProfileController::class, &#039;destroy&#039;])-&gt;name(&#039;profile.destroy&#039;);\n});\n \nrequire __DIR__.&#039;\/auth.php&#039;;\nrequire __DIR__.&#039;\/oligo.php&#039;;\n<\/pre>\n<\/div>\n<p>\u8ab0\u304c\u627f\u8a8d\u3055\u308c\u3066\u3044\u308b\u306e\u304b\u308f\u304b\u308b\u3088\u3046\u306b\u30d8\u30c3\u30c0\u30fc\u90e8\u5206\u306b\u3044\u308c\u308b\u3002\u3064\u3044\u3067\u306b\u30ed\u30b0\u30a2\u30a6\u30c8\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3002<\/p>\n<p><\/p>\n<div class='code'>\n  <h5 class=\"source-file\">resources\/views\/layouts\/app.blade.php<\/h5>\n<pre >\n@extends(&#039;layouts.html&#039;)\n \n@section(&#039;body&#039;)\n  &lt;header class=&#039;bg-blue-500 text-white py-2 px-2 flex justify-between items-start&#039;&gt;  {{-- \u80cc\u666f\u8272\u3001\u6587\u5b57\u8272\u3001\u4f59\u767d(padding) --}}\n    &lt;h1 class=&#039;text-xl leading-none&#039;&gt;{{ config(&#039;app.name&#039;) }}&lt;\/h1&gt;\n    &lt;div class=&quot;flex items-baseline&quot;&gt;\n      @auth\n        &lt;span class=&#039;px-2 text-sm&#039;&gt;{{ auth()-&gt;user()-&gt;name }}&lt;\/span&gt;\n        &lt;form method=&quot;POST&quot; action=&quot;{{ route(&#039;logout&#039;) }}&quot; class=&quot;inline&quot;&gt;\n          @csrf\n          &lt;button type=&quot;submit&quot; class=&quot;text-sm text-black bg-gray-200 border-gray-400 px-2 hover:bg-gray-400 hover:text-white&quot;&gt;\n            {{ __(&#039;\u30ed\u30b0\u30a2\u30a6\u30c8&#039;) }}\n          &lt;\/button&gt;\n        &lt;\/form&gt;\n      @endauth\n      @guest\n        \u30b2\u30b9\u30c8\n      @endguest\n    &lt;\/div&gt;\n  &lt;\/header&gt;\n \n  &lt;nav class=&#039;bg-yellow-100 py-2 px-2&#039;&gt;\n    &lt;ul id=&#039;module-tabs&#039; class=&#039;flex&#039;&gt;  {{-- \u30bf\u30d6\u304c\u6a2a\u4e26\u3073\u306b\u306a\u308b\u3088\u3046\u306bflex\u3092\u8ffd\u52a0 --}}\n      &lt;li class=&#039;module-tab&#039;&gt;&lt;a id=&#039;oligo-tab&#039; href=&#039;\/oligo&#039;&gt;\u30aa\u30ea\u30b4DNA&lt;\/a&gt;&lt;\/li&gt;\n      {{-- \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u8907\u6570\u4e26\u3093\u3060\u3068\u304d\u306e\u69d8\u5b50\u304c\u308f\u304b\u308b\u3088\u3046\u306b\u30c0\u30df\u30fc\u3092\u8ffd\u52a0 --}}\n      &lt;li class=&#039;module-tab&#039;&gt;&lt;a id=&#039;dummy1-tab&#039; href=&#039;\/dummy1&#039;&gt;\u30c0\u30df\u30fc1&lt;\/a&gt;&lt;\/li&gt;\n      &lt;li class=&#039;module-tab&#039;&gt;&lt;a id=&#039;dummy2-tab&#039; href=&#039;\/dummy2&#039;&gt;\u30c0\u30df\u30fc2&lt;\/a&gt;&lt;\/li&gt;\n      &lt;li class=&#039;module-tab&#039;&gt;&lt;a id=&#039;dummy3-tab&#039; href=&#039;\/dummy3&#039;&gt;\u30c0\u30df\u30fc3&lt;\/a&gt;&lt;\/li&gt;\n    &lt;\/ul&gt;\n  &lt;\/nav&gt;\n \n  &lt;main id=&#039;modules&#039; class=&#039;bg-yellow-100 px-2 min-h-screen&#039;&gt;\n    @yield(&#039;module&#039;)\n    \nbutton {\n    @apply border-2 py-[0.05em] px-2 rounded shadow-sm shadow-gray-400;\n}\nbutton:active {\n    @apply shadow-none translate-y-[0.05em] translate-x-[0.05em];\n}\n \ninput[type=checkbox] {\n    @apply w-4 h-4;\n}\n \n  &lt;\/main&gt;\n@endsection\n<\/pre>\n<\/div>\n<p>\/login\u3092\u76f4\u63a5URL\u306b\u6307\u5b9a\u3057\u305f\u3068\u304d\u3001\u30ed\u30b0\u30a4\u30f3\u5f8c\u306b\/dashboard\u3078\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306fapp\/Http\/Controllers\/Auth\/AuthenticatedSessionController.php\u306b\u8a2d\u5b9a\u304c\u3042\u308a\u3001\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5148\u3092\u5909\u66f4\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>\u30e6\u30fc\u30b6\u30fc\u306e\u4e00\u89a7\u3001\u8ffd\u52a0\u3001\u7de8\u96c6\u3001\u524a\u9664<\/h2>\n<p>oligo\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30b3\u30d4\u30fc\u3057\u3066\u5c11\u3057\u305a\u3064\u5408\u308f\u305b\u308b<\/p>\n<p>\u5fc5\u8981\u306a\u3082\u306e<\/p>\n<ul>\n<li>routes\/users.php -&gt; web.php\u304b\u3089\u8aad\u307f\u8fbc\u3080<\/li>\n<li>UserController.php UserRequest.php UserService.php<\/li>\n<li>views\/user<\/li>\n<li>css\/user.css &lt;- \u30e2\u30b8\u30e5\u30fc\u30eb\u3054\u3068\u306b\u8272\u3092\u5909\u3048\u308b\u3068\u304b<\/li>\n<\/ul>\n\n\n\n<div style='display: flex; justify-content: center; gap: 4rem;\n  background-color: #ffefd5;\n  '\n>\n  <a href='laravel-05'>\u524d\u3078<\/a>\n\n<a href='.\/'>PHP\u306e\u5b66\u7fd2 \u76ee\u6b21<\/a>\n\n  <a href='laravel-07'>\u6b21\u3078<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"\u524d\u56de\u7d42\u4e86\u6642\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9 Laravel\u3092\u4f7f\u3063\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 $ git clone https:\/\/kiku3.tsbio.info\/git\/st [&hellip;]","protected":false},"author":2,"featured_media":0,"parent":2658,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"page-programming.php","meta":{"footnotes":""},"class_list":["post-2971","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/pages\/2971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/comments?post=2971"}],"version-history":[{"count":37,"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/pages\/2971\/revisions"}],"predecessor-version":[{"id":3269,"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/pages\/2971\/revisions\/3269"}],"up":[{"embeddable":true,"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/pages\/2658"}],"wp:attachment":[{"href":"https:\/\/biochemistry.isc.chubu.ac.jp\/labo\/suzuki\/wp-json\/wp\/v2\/media?parent=2971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}