<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MySQL &#8211; 福田技工</title>
	<atom:link href="https://www.fukuda-gikou.co.jp/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fukuda-gikou.co.jp</link>
	<description>Fukuda Gikou</description>
	<lastBuildDate>Mon, 23 May 2022 11:09:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2</generator>
	<item>
		<title>Laravelでログインサイトを作る #2</title>
		<link>https://www.fukuda-gikou.co.jp/devlog/1832/</link>
		
		<dc:creator><![CDATA[福田 修平]]></dc:creator>
		<pubDate>Mon, 23 May 2022 03:08:25 +0000</pubDate>
				<category><![CDATA[開発ブログ]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.fukuda-gikou.co.jp/?p=1832</guid>

					<description><![CDATA[サイト全体を認証（ログイン必須）サイトにする Laravelのサイト（コンテンツ）がログインをしないと閲覧できないように設定していきます。 リダイレクト先の変更 Login、Register（ユーザ作成）後のリダイレクト [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>サイト全体を認証（ログイン必須）サイトにする</h1>
<p>Laravelのサイト（コンテンツ）がログインをしないと閲覧できないように設定していきます。</p>
<h2>リダイレクト先の変更</h2>
<p>Login、Register（ユーザ作成）後のリダイレクト先は<a href="http://localhost:3000/home" target="_blank" rel="noopener">http://localhost:3000/home</a>となっています。URLの末尾の<code>/home</code>を外してTOP
	へリダイレクトするには<code>app/Providers/RouteServiceProvider.php</code>と<code>routes/web.php</code>を編集します。</p>
<p>app/Providers/RouteServiceProvider.php <br><small>&#8216;/home&#8217; から &#8216;/&#8217; に変更するだけです。</small></p>
<script src="https://gist.github.com/fkdgk/56eb7ef6a57dff231ed121bae6c704d6.js"></script>
<h2>ルーティングの変更</h2>
<p>routes/web.php <br>読みやすいように<code>use App\Http\Controllers\HomeController;</code>を追加しているところに注意。</p>
<script src="https://gist.github.com/fkdgk/421f630305c3ccc58b87559d1ba39040.js"></script>
<p>ログインしていない状態で<a href="http://localhost:3000/">http://localhost:3000/</a>にアクセスすると<a href="http://localhost:3000/login">http://localhost:3000/login</a>にリダイレクトされている事が確認できます。</p>
<figure id="attachment_1847" aria-describedby="caption-attachment-1847" style="width: 1013px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-12.png"><img decoding="async" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-12.png" alt="Capture 12" width="1013" height="424" class="size-full wp-image-1847" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-12.png 1013w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-12-300x126.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-12-768x321.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-12-696x291.png 696w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-12-1003x420.png 1003w" sizes="(max-width: 1013px) 100vw, 1013px" /></a><figcaption id="caption-attachment-1847" class="wp-caption-text">ログイン画面へリダイレクト</figcaption></figure>
<h2>カードレイアウトをコンポーネント化する</h2>
<p>よく使うテンプレートをコンポーネント化します。コンポーネント化することで効率よく無駄なくテンプレートを構築することができます。</p>
<pre>php artisan make:component Card/Card</pre>
<p><code>make:component</code>コマンドを入力すると2つのファイルが生成されます。それぞれ以下のように編集を加えます。</p>
<p>resources/views/components/card/card.blade.php</p>
<p><code>slot</code>の中にコンテンツが入ります。</p>
<script src="https://gist.github.com/fkdgk/09876b4f0e8654b59bc1da16e62b5fdc.js"></script>
<p>app/View/Components/Card/Card.php</p>
<script src="https://gist.github.com/fkdgk/18bce40a92730f000784afc5b56494ff.js"></script>
<p>コンポーネントファイルをhome.blade.phpテンプレートへ読み込ませます。</p>
<p>resources/views/home.blade.php</p>
<script src="https://gist.github.com/fkdgk/3fb3615a08561bb742a6b45fe4533ec8.js"></script>
<p><a href="http://localhost:3000/" target="_blank" rel="noopener">http://localhost:3000/</a>の画面はこのような状態になっています。</p>
<figure id="attachment_1857" aria-describedby="caption-attachment-1857" style="width: 1022px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-13.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-13.png" alt="Capture 13" width="1022" height="255" class="size-full wp-image-1857" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-13.png 1022w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-13-300x75.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-13-768x192.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-13-696x174.png 696w" sizes="(max-width: 1022px) 100vw, 1022px" /></a><figcaption id="caption-attachment-1857" class="wp-caption-text">home.blade.phpの表示状態</figcaption></figure>
<h2>ルート全体を要認証にする</h2>
<code>Route::middleware(['auth'])->group(function ()</code>で囲むことでルート全体を認証化させることができます。
<script src="https://gist.github.com/fkdgk/1097b9499f54edbb8aebf0676da6c39f.js"></script>
<p><code>HomeController.php</code>の<code>middleware('auth')</code>は不要になりますので以下のコードは削除します。</p>
<pre>
    public function __construct()
    {
        $this->middleware('auth');
    }
</pre>
<p>app/Http/Controllers/HomeController.php</p>
<script src="https://gist.github.com/fkdgk/ee206e5ace0687a2547aa1e1c1a2a42a.js"></script>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Laravel Ver9対応】ログイン機能付き記事投稿アプリを作りながらプログラミングを覚える #1</title>
		<link>https://www.fukuda-gikou.co.jp/devlog/1775/</link>
		
		<dc:creator><![CDATA[福田 修平]]></dc:creator>
		<pubDate>Mon, 23 May 2022 01:06:05 +0000</pubDate>
				<category><![CDATA[開発ブログ]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://www.fukuda-gikou.co.jp/?p=1775</guid>

					<description><![CDATA[Laravelの開発環境を準備する Docker（Laravel Sail）をインストール アプリ名：Post-Appデータベース:mariadb（mysql） curl -s "https://laravel.buil [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>Laravelの開発環境を準備する</h1>
<h2>Docker（Laravel Sail）をインストール</h2>
<p>アプリ名：Post-App<br>データベース:mariadb（mysql）</p>
<pre>curl -s "https://laravel.build/Post-APP?with=mariadb" | bash</pre>
<p><code>Docker is not running.</code> と表示された原因はDokerが起動されていないからです。Docker Desktopを起動して再度上記コマンドを入力。</p>
<p><code>Please provide your password so we can make some final adjustments to your application's permissions.</code> というメッセージが表示されたらマシンのパスワードを入力。</p>
<p><code>Post-APP</code>というディレクトリが作成されます。<code>cd</code>コマンドでPost-APPディレクトリへ移動します。</p>
<pre>cd Post-APP</pre>
<h2>VS codeでプロジェクトを開く</h2>
<pre>code .</pre>
<h2>ポート番号を指定し、Dockerを起動</h2>
<p>ポート番号を3000番で起動する場合のコマンドはこちらになります。</p>
<pre>APP_PORT=3000 ./vendor/bin/sail up</pre>
<p>Dockerが起動したら<a href="http://localhost:3000/" target="_blank" rel="noopener">http://localhost:3000/</a>にアクセスしてみます。</p>
<figure id="attachment_1782" aria-describedby="caption-attachment-1782" style="width: 696px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2-1024x523.png" alt="Capture 2" width="696" height="355" class="size-large wp-image-1782" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2-1024x523.png 1024w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2-300x153.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2-768x393.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2-696x356.png 696w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2-1068x546.png 1068w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2-822x420.png 822w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-2.png 1166w" sizes="(max-width: 696px) 100vw, 696px" /></a><figcaption id="caption-attachment-1782" class="wp-caption-text">Laravelの初期画面</figcaption></figure>
<h2>Dockerにログインする</h2>
<figure id="attachment_1786" aria-describedby="caption-attachment-1786" style="width: 696px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3-1024x341.png" alt="Capture 3" width="696" height="232" class="size-large wp-image-1786" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3-1024x341.png 1024w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3-300x100.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3-768x256.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3-696x232.png 696w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3-1068x355.png 1068w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture_3.png 1160w" sizes="(max-width: 696px) 100vw, 696px" /></a><figcaption id="caption-attachment-1786" class="wp-caption-text">ターミナルウィンドウを追加表示</figcaption></figure>
<p>VS CODE右上のプラスボタンをクリックしターミナルウィンドウを追加表示させます。</p>
<pre>./vendor/bin/sail shell</pre>
<p><code>sail@b874aedee907:/var/www/html$</code>と表示されます。<code>b874aedee907</code>の部分は環境によって変わります。</p>
<h1>認証機能の実装</h1>
<h2>ログイン・認証の雛形をインストール</h2>
<p>Laravelでログイン、ユーザ作成、認証を使える雛形をインストールします。</p>
<pre>composer require laravel/ui
php artisan ui bootstrap --auth</pre>
<p>※フロントのフレームワークはbootstrap, vue, reactの3つから選択できます。今回はbootstrapで作成していきます。</p>
<p><code>--auth</code>のオプションを付けることで認証機能を実装することができます。画面右上に<code>Login</code>, <code>Register</code>のリンクが生成されたのが確認できます。</p>
<figure id="attachment_1797" aria-describedby="caption-attachment-1797" style="width: 696px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel-1024x583.png" alt="Laravel" width="696" height="396" class="size-large wp-image-1797" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel-1024x583.png 1024w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel-300x171.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel-768x437.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel-696x396.png 696w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel-1068x608.png 1068w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel-738x420.png 738w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/Laravel.png 1176w" sizes="(max-width: 696px) 100vw, 696px" /></a><figcaption id="caption-attachment-1797" class="wp-caption-text">右上にリンクが生成される</figcaption></figure>
<p><a href="http://localhost:3000/login" target="_blank" rel="noopener">Login</a>をクリックします。</p>
<h2>Bootstrapのスタイル適用</h2>
<div><figure id="attachment_1803" aria-describedby="caption-attachment-1803" style="width: 279px" class="wp-caption alignleft"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-5-1.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-5-1.png" alt="Capture 5" width="279" height="301" class="size-full wp-image-1803" /></a><figcaption id="caption-attachment-1803" class="wp-caption-text">ログイン画面</figcaption></figure> <p>スタイルが適応されていない状態。</p>
<pre>npm install
npm run dev</pre><p>上記コマンドでbootstrapのスタイルが適用されます。</p><p><code>...  Finished. Please run Mix again.</code>という表示が出たら再度<code>npm run dev</code>コマンドを入力。</p>
</div>
<figure id="attachment_1807" aria-describedby="caption-attachment-1807" style="width: 975px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-6.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-6.png" alt="Capture 6" width="975" height="404" class="size-full wp-image-1807" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-6.png 975w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-6-300x124.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-6-768x318.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-6-696x288.png 696w" sizes="(max-width: 975px) 100vw, 975px" /></a><figcaption id="caption-attachment-1807" class="wp-caption-text">bootstrap適用後のログイン画面</figcaption></figure>
<p>bootstrapのスタイルが適用され見栄えが変わりました。<br>同様にRegister画面（<a href="http://localhost:3000/register" target="_blank" rel="noopener">http://localhost:3000/register</a>）もスタイルが適用されています。</p>
<figure id="attachment_1810" aria-describedby="caption-attachment-1810" style="width: 979px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-7.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-7.png" alt="Capture 7" width="979" height="437" class="size-full wp-image-1810" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-7.png 979w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-7-300x134.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-7-768x343.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-7-696x311.png 696w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-7-941x420.png 941w" sizes="(max-width: 979px) 100vw, 979px" /></a><figcaption id="caption-attachment-1810" class="wp-caption-text">Register画面</figcaption></figure>
<p><a href="http://localhost:3000/register">http://localhost:3000/register</a>のリンクを開きユーザを作成してみます。</p>
<figure id="attachment_1813" aria-describedby="caption-attachment-1813" style="width: 876px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-8.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-8.png" alt="Capture 8" width="876" height="345" class="size-full wp-image-1813" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-8.png 876w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-8-300x118.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-8-768x302.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-8-696x274.png 696w" sizes="(max-width: 876px) 100vw, 876px" /></a><figcaption id="caption-attachment-1813" class="wp-caption-text">Register画面からユーザ作成</figcaption></figure>
<figure id="attachment_1814" aria-describedby="caption-attachment-1814" style="width: 696px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9-1024x187.png" alt="Capture 9" width="696" height="127" class="size-large wp-image-1814" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9-1024x187.png 1024w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9-300x55.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9-768x140.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9-696x127.png 696w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9-1068x195.png 1068w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-9.png 1376w" sizes="(max-width: 696px) 100vw, 696px" /></a><figcaption id="caption-attachment-1814" class="wp-caption-text">SQLSTATE[42S02]: Base table or view not found: 1146 Table &#8216;post_app.users&#8217; doesn&#8217;t exist</figcaption></figure>
<p><code>SQLSTATE[42S02]: Base table or view not found: 1146 Table 'post_app.users' doesn't exist</code>というエラー画面が表示され正常にユーザ作成ができません。<code>A table was not found</code>と表示されている通り、ユーザテーブルが無いのが原因です。</p>
<h2>ユーザテーブル作成</h2>
<p>こちらのコマンドを入力して、usersテーブルを作成します。これはmigrate（マイグレート）という操作になります。</p>
<pre>php artisan migrate</pre>
<figure id="attachment_1817" aria-describedby="caption-attachment-1817" style="width: 603px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-10.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-10.png" alt="Capture 10" width="603" height="204" class="size-full wp-image-1817" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-10.png 603w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-10-300x101.png 300w" sizes="(max-width: 603px) 100vw, 603px" /></a><figcaption id="caption-attachment-1817" class="wp-caption-text">マイグレーション操作</figcaption></figure>
<p>マイグレーションを行うとターミナルに<code>Migration table created successfully.</code>と表示されusersテーブルが作成されます。</p>
<figure id="attachment_1821" aria-describedby="caption-attachment-1821" style="width: 971px" class="wp-caption alignnone"><a href="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-11.png"><img decoding="async" loading="lazy" src="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-11.png" alt="Capture 11" width="971" height="242" class="size-full wp-image-1821" srcset="https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-11.png 971w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-11-300x75.png 300w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-11-768x191.png 768w, https://www.fukuda-gikou.co.jp/wp-content/uploads/2022/05/capture-11-696x173.png 696w" sizes="(max-width: 971px) 100vw, 971px" /></a><figcaption id="caption-attachment-1821" class="wp-caption-text">ユーザ作成完了画面</figcaption></figure>
<p>先程のエラー画面を更新します。するとエラーが解消され<code>You are logged in!</code>と表示されます。これは作成したーユーザでログインしている状態になります。</p>
<p>ここまでのコーディングでユーザ作成、ログイン、ログアウト処理が行えます。ご自身で画面上から操作を行い動作確認を試してみてください。</p>
<p><a href="https://github.com/fkdgk/larave-post-app-sample/commit/57e2c54c85debe663ce5df658308b452776942fd" target="_blank" rel="noopener">https://github.com/fkdgk/larave-post-app-sample/commit/57e2c54c85debe663ce5df658308b452776942fd</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
