<?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>フレームワーク &#8211; ケケンタの独学ITブログ</title>
	<atom:link href="https://kekenta-it-blog.com/tag/%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF/feed/" rel="self" type="application/rss+xml" />
	<link>https://kekenta-it-blog.com</link>
	<description>プログラミングやWeb制作の情報を発信</description>
	<lastBuildDate>Tue, 18 Mar 2025 01:54:29 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://kekenta-it-blog.com/wp-content/uploads/2023/07/cropped-KEKENTA-BLOG-32x32.png</url>
	<title>フレームワーク &#8211; ケケンタの独学ITブログ</title>
	<link>https://kekenta-it-blog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Laravel】カラム名を変更する方法【マイグレーション】</title>
		<link>https://kekenta-it-blog.com/laravel-change-dbtable-col-name/</link>
					<comments>https://kekenta-it-blog.com/laravel-change-dbtable-col-name/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Wed, 11 Dec 2024 01:53:54 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Laravel11]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[マイグレーション]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=12475</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/eye-catch__laravel-change-dbtable-col-name__12475-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>この記事では Laravelでデータベーステーブルのカラム名を変更する方法 を解説します。 検証はLaravel11で実施しました。 Laravelではマイグレーションファイルを作成・編集し、コマンドでテーブルを作成しま [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/eye-catch__laravel-change-dbtable-col-name__12475-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong><span class="swl-marker mark_yellow">Laravelでデータベーステーブルのカラム名を変更する方法</span></strong></p>



<p>を解説します。</p>



<p class="is-style-icon_pen">検証は<strong>Laravel11</strong>で実施しました。</p>



<p>Laravelでは<strong>マイグレーションファイルを作成・編集し、コマンドでテーブルを作成</strong>します。</p>



<p>その際、テーブルのカラム名を間違えて入力してしまうということも起こりえます。</p>



<p>また、仕様変更によってカラム名の変更が必要となる可能性も考えられるでしょう。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>今回ご紹介する方法を用いることで<strong><span class="swl-marker mark_yellow">簡単にカラム名を変更できる</span></strong>ので、ぜひご活用ください！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-validation/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</span>
			</a>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">【解説】Laravelでデータベースのカラム名を変更する方法</h2>



<h3 class="wp-block-heading">STEP１　マイグレーションファイルを作成する</h3>



<p>まずは以下のコマンドで<strong>マイグレーションファイルを作成</strong>しましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code> php artisan make:migration change_column_name_comments_table</code></pre></div>



<p class="is-style-icon_pen">「change_column_name_comments_table」の部分の名前は任意です。（分かりやすい名前を推奨）</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP２　マイグレーションファイルを編集する</h3>



<p>続いて、作成された<strong>マイグレーションファイルを編集</strong>していきます。</p>



<p class="is-style-icon_pen">今回は<strong>nicesテーブルの外部キーを「comment_id」とするべきところ、誤って「post_id」にしてしまった状況</strong>を想定しています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * マイグレーション実行時に動く処理
     */
    public function up(): void
    {
        Schema::table(&#39;nices&#39;, function (Blueprint $table) {
            $table-&gt;renameColumn(&#39;post_id&#39;, &#39;comment_id&#39;)-&gt;change();
        });
    }

    /**
     * ロールバック実行時に動く処理
     */
    public function down(): void
    {
        Schema::table(&#39;nices&#39;, function (Blueprint $table) {
            $table-&gt;renameColumn(&#39;comment_id&#39;, &#39;post_id&#39;)-&gt;change();
        });
    }
};
</code></pre></div>



<p>主な編集個所は<code>up()</code>関数と<code>down()</code>関数の２つです。</p>



<p>Laravelには<code>change()</code>関数が用意されており、以下のように記述することで<strong>カラム名を変更することが可能</strong>です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>$table-&gt;renameColumn(&#39;post_id&#39;, &#39;comment_id&#39;)-&gt;change();</code></pre></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>また、<code>down()</code>関数にも<strong>以下の処理を記述</strong>しています。</p>



<p class="is-style-balloon_box"><strong>down()関数</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>$table-&gt;renameColumn(&#39;comment_id&#39;, &#39;post_id&#39;)-&gt;change();</code></pre></div>



<p class="is-style-big_icon_point"><code>down()</code>関数は<strong>ロールバック実行時に動く関数</strong>です。<br><br>ここに記述するのは、簡単に言えば<strong><code>up()</code>関数で実行させる処理と<span class="swl-inline-color has-swl-deep-02-color">逆の処理</span></strong>です。<br>※今回は「post_id」を「comment_id」へ修正しているため、<code>down()</code>関数の方には、その反対の処理を記述しています。<br><br><code>down()</code>はマイグレーション実行時には動きませんが、ロールバックするときに正しく処理が書かれていないとエラーが発生するためご注意ください。</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP３　マイグレーションを実行する</h3>



<p>マイグレーションファイルが編集できたら以下のコマンドでマイグレーションを実行しましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan migrate</code></pre></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP４　カラム名が変更されていることを確認する</h3>



<p>最後に、本当にカラム名が変更されたかどうかを確認してみましょう。</p>



<p class="is-style-bg_stripe">この記事では<strong>SQLite3</strong>での確認方法をご紹介します。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">SQLite3をCLIで起動する</div><div class="swell-block-step__body">
<p><strong>Laravelプロジェクトディレクトリの直下</strong>で以下のコマンドを実行することでSQLite3をCLIで起動することができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sqlite3 .\database\database.sqlite</code></pre></div>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="960" height="510" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli.png" alt="SQLite3のCLI起動後" class="wp-image-12530" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli.png 960w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli-300x159.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli-768x408.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><figcaption class="wp-element-caption">SQLite3のCLI起動後</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">テーブル構造を確認する</div><div class="swell-block-step__body">
<p>SQLite3で<strong>特定のテーブル構造を確認するとき</strong>は以下のコマンドを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>PRAGMA table_info(&#39;nices&#39;);</code></pre></div>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">SQLite3を終了する</div><div class="swell-block-step__body">
<p>SQLite3の<strong>CLIモードを終了する</strong>ときは以下のコマンドを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>.quit</code></pre></div>



<p class="is-style-icon_info">末尾に「;」を付けるとエラーになるのでご注意ください。</p>
</div></div>
</div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以上が<strong>Laravel11でデータベーステーブルのカラム名を変更する方法</strong>です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"></p>



<h2 class="wp-block-heading">まとめ</h2>



<p>以上が<strong><span class="swl-marker mark_yellow">Laravelでデータベーステーブルのカラム名を変更する方法</span></strong>でした。</p>



<p>人の手でおこなう以上、カラム名の記述ミスが絶対に起こらないとは言い切れません。</p>



<p>また、仕様変更にともなうカラム名の変更も可能性としてはゼロではないでしょう。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>そのようなときに今回ご紹介させていただいた内容をご活用いただければ何よりです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>それでは、最後までご覧いただきありがとうございました！</p>



<p>当ブログではLaravelやPHPなどWebアプリに関する情報を発信しています。</p>



<p>ご興味のある方はほかの記事もご覧いただけるとうれしいです！</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/eye-catch__laravel11-change-dbtable-col-type__12470-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/">【Laravel】データベーステーブルのカラムタイプを変更する方法【マイグレーション】</a>
						<span class="p-blogCard__excerpt">この記事では Laravelでデータベーステーブルのカラムタイプを変更する方法 をご紹介します。 検証はLaravel11で実施しました。 Laravelではマイグレーションを実行する&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/laravel-change-dbtable-col-name/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Laravel】データベーステーブルのカラムタイプを変更する方法【マイグレーション】</title>
		<link>https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/</link>
					<comments>https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Wed, 04 Dec 2024 01:52:47 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Laravel11]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[マイグレーション]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=12470</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/eye-catch__laravel11-change-dbtable-col-type__12470-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>この記事では Laravelでデータベーステーブルのカラムタイプを変更する方法 をご紹介します。 検証はLaravel11で実施しました。 Laravelではマイグレーションを実行することでデータベーステーブルを作成しま [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/eye-catch__laravel11-change-dbtable-col-type__12470-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong><span class="swl-marker mark_yellow">Laravelでデータベーステーブルのカラムタイプを変更する方法</span></strong></p>



<p>をご紹介します。</p>



<p class="is-style-icon_pen">検証は<strong>Laravel11</strong>で実施しました。</p>



<p>Laravelではマイグレーションを実行することでデータベーステーブルを作成します。</p>



<p>その際、マイグレーションファイルにテーブル構造を記述しますが、「うっかりカラムタイプを誤って指定しまった！」ということもあるかもしれません。</p>



<p>データベースへテストデータなどを追加する前であれば、</p>



<p>ロールバック→マイグレーションファイル修正→再度マイグレーション実行</p>



<p>という流れも取れます。</p>



<p>しかし、もしもカラムタイプの指定が誤っていることに気が付いたのがもっと後のタイミングだった場合、単にロールバックするだけでは何かと面倒だということもあるかもしれません。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>今回ご紹介するのはそんなときにご活用いただける方法です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-validation/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-change-dbtable-col-name/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel】カラム名を変更する方法【マイグレーション】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">【解説】Laravelでデータベースのカラムタイプを変更する方法</h2>



<h3 class="wp-block-heading">STEP１　マイグレーションファイルを作成する</h3>



<p>まずは以下のコマンドで<strong>マイグレーションファイルを作成</strong>しましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan make:migration change_posts_table_title_column_type</code></pre></div>



<p class="is-style-icon_pen">「change_posts_table_title_column_type」の部分の名前は任意です。（分かりやすい名前を推奨）</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP２　マイグレーションファイルを編集する</h3>



<p>続いて、作成された<strong>マイグレーションファイルを編集</strong>していきます。</p>



<p class="is-style-icon_pen">今回は<strong>postsテーブルのtitleカラムのカラムタイプをstringで指定すべきところ、「うっかり」integerで指定してしまった状況</strong>を想定しています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP" data-line="14-16,24-26"><code>&lt;?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * マイグレーション実行時に動く処理
     */
    public function up(): void
    {
        Schema::table(&#39;posts&#39;, function (Blueprint $table) {
            $table-&gt;string(&#39;title&#39;)-&gt;change();
        });
    }

    /**
     * ロールバック実行時に動く処理
     */
    public function down(): void
    {
        Schema::table(&#39;posts&#39;, function (Blueprint $table) {
            $table-&gt;integer(&#39;title&#39;)-&gt;change();
        });
    }
};
</code></pre></div>



<p>主な編集個所は<code>up()</code>関数と<code>down()</code>関数の２つです。</p>



<p>Laravelには<code>change()</code>関数が用意されており、以下のように記述することで<strong>カラムタイプを変更することが可能</strong>です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>$table-&gt;string(&#39;title&#39;)-&gt;change();</code></pre></div>



<p class="is-style-icon_info"><strong>カラムタイプ以外にオプション（修飾子）を指定している場合</strong>は明示的な記述が必要です。<br>詳しくは「<a href="#anc-has-option">【補足】カラムにオプション（修飾子）を指定している場合</a>」をご覧ください。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>また、<code>down()</code>関数にも<strong>以下の処理を記述</strong>しています。</p>



<p class="is-style-balloon_box"><strong>down()関数</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>$table-&gt;integer(&#39;title&#39;)-&gt;change();</code></pre></div>



<p class="is-style-big_icon_point"><code>down()</code>関数は<strong>ロールバック実行時に動く関数</strong>です。<br><br>ここに記述するのは、簡単に言えば<strong><code>up()</code>関数で実行させる処理と<span class="swl-inline-color has-swl-deep-02-color">逆の処理</span></strong>です。<br>※今回はinteger指定をstring指定へ修正しているため、<code>down()</code>関数の方には、その反対の処理を記述しています。<br><br><code>down()</code>はマイグレーション実行時には動きませんが、ロールバックするときに正しく処理が書かれていないとエラーが発生するためご注意ください。</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP３　マイグレーションを実行する</h3>



<p>マイグレーションファイルが編集できたら以下のコマンドでマイグレーションを実行しましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan migrate</code></pre></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP４　カラムタイプが変更されていることを確認する</h3>



<p>最後に、本当にカラムタイプが変更されたかどうかを確認してみましょう。</p>



<p class="is-style-bg_stripe">この記事では<strong>SQLite3</strong>での確認方法をご紹介します。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">SQLite3をCLIで起動する</div><div class="swell-block-step__body">
<p><strong>Laravelプロジェクトディレクトリの直下</strong>で以下のコマンドを実行することでSQLite3をCLIで起動することができます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sqlite3 .\database\database.sqlite</code></pre></div>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="960" height="510" src="https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli.png" alt="SQLite3のCLI起動後" class="wp-image-12530" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli.png 960w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli-300x159.png 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/12/activate-sqlite-cli-768x408.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><figcaption class="wp-element-caption">SQLite3のCLI起動後</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">テーブル構造を確認する</div><div class="swell-block-step__body">
<p>SQLite3で<strong>特定のテーブル構造を確認するとき</strong>は以下のコマンドを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>PRAGMA table_info(&#39;posts&#39;);</code></pre></div>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">SQLite3を終了する</div><div class="swell-block-step__body">
<p>SQLite3の<strong>CLIモードを終了する</strong>ときは以下のコマンドを実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-sql" data-lang="SQL"><code>.quit</code></pre></div>



<p class="is-style-icon_info">末尾に「;」を付けるとエラーになるのでご注意ください。</p>
</div></div>
</div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以上が<strong>Laravel11でデータベーステーブルのカラムタイプを変更する方法</strong>です！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading" id="anc-has-option">【補足】カラムにオプション（修飾子）を指定している場合</h2>



<p class="is-style-icon_info">もし変更対象のカラムに何らかのオプション（修飾子）を指定していた場合は、change()を実行するときに<strong>それらのオプション（修飾子）を明示的に指定する必要があります。</strong></p>



<p>以下は「posts」テーブルの「nice_num（いいね数）」カラムにオプション（修飾子）が設定されていた場合の記述例です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>Schema::table(&#39;posts&#39;, function (Blueprint $table) {
    // 誤ってデフォルト値を「１」にしてしまっていたため、
    // $table-&gt;integer(&#39;nice_num&#39;)-&gt;unsigned()-&gt;default(1)-&gt;comment(&#39;post nice number&#39;) // ←元々のカラム設定
    
    // 「０」へ変更したい
    $table-&gt;integer(&#39;nice_num&#39;)-&gt;unsigned()-&gt;default(0)-&gt;comment(&#39;post nice number&#39;)-&gt;change();
});</code></pre></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>change()関数は簡単にカラムタイプを変更することが可能ですが、元々のオプション（修飾子）情報は保持してくれないようです！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">まとめ</h2>



<p>以上が、<strong><span class="swl-marker mark_yellow">Laravelでデータベーステーブルのカラムタイプを変更する方法</span></strong>でした！</p>



<p>人為的ミスや仕様変更などにより、カラムタイプを変更しなくてはならないこともあるかと思います。</p>



<p>そんなときは「change()関数が使える」ということを覚えておくと、必要な情報をパッと調べられるかと思います。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>それでは最後までご覧いただきありがとうございました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>当ブログではLaravelやPHPなどに関する情報を発信しています。</p>



<p>ご興味のある方はほかの記事もご覧いただけるとうれしいです！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Laravel】インストール方法～初めてのデータ出力の流れを丁寧に解説！</title>
		<link>https://kekenta-it-blog.com/laravel-introduction/</link>
					<comments>https://kekenta-it-blog.com/laravel-introduction/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Sun, 17 Nov 2024 06:04:55 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Laravel11]]></category>
		<category><![CDATA[Laravel入門]]></category>
		<category><![CDATA[インストール方法]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=12177</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/eye-catch__laravel-introduction__12177-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>この記事では Laravelの導入方法（インストール）　～　初めてのデータ出力 の手順を画像つきで丁寧に解説していきます。 ぜひ実際に手を動かしながら記事を読み進めていただければと思います。 Laravelとは？ Lar [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/eye-catch__laravel-introduction__12177-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>この記事では</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong><span class="swl-marker mark_yellow">Laravelの導入方法（インストール）　～　初めてのデータ出力</span></strong></p>



<p>の手順を<strong>画像つき</strong>で丁寧に解説していきます。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>この記事が向いている方</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>PHPの学習を終えて、Laravelに挑戦したい人</li>



<li>とりあえずLaravelの導入方法をザックリ知りたい人</li>



<li>これから初めてLaravelに触る人</li>
</ul>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>この記事をご覧いただくことで、初めてフレームワークに触れるという方でも<strong><span class="swl-marker mark_yellow">Laravelの導入方法やデータ出力の仕組み</span></strong>について理解することができます！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ぜひ実際に手を動かしながら記事を読み進めていただければと思います。</p>


<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-validation/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel】データベーステーブルのカラムタイプを変更する方法【マイグレーション】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">Laravelとは？</h2>



<h3 class="wp-block-heading">Laravelの特徴</h3>



<p>すでにご存じのとおり、Laravelは<strong>PHPのフレームワークのひとつ</strong>です。</p>



<p>Symphony（シンフォニー）という別のフレームワークを踏襲して設計開発されました。そして、このSymphony（シンフォニー）というフレームワークは大規模開発に向いており、Laravelもその特徴を引き継いでいます。</p>



<p>また、Laravelは基本的に<strong>Webアプリ開発に用いられるフレームワーク</strong>である一方、開発可能なアプリの幅は広いです。</p>



<p>現在も頻繁なバージョンアップが行われおり、今後の機能改善にも期待できるフレームワークとなっています。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">Laravelを使用する「メリット」</h3>



<p>Laravelを使用する<strong><span class="swl-marker mark_blue">メリット</span></strong>として以下のような点が挙げられます。</p>



<div class="swell-block-capbox cap_box" data-colset="col2"><div class="cap_box_ttl"><span><span data-icon="LsCircle" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMjQgNDYuNUMxMS42IDQ2LjUgMS41IDM2LjQgMS41IDI0UzExLjYgMS41IDI0IDEuNSA0Ni41IDExLjYgNDYuNSAyNCAzNi40IDQ2LjUgMjQgNDYuNXptMC00MEMxNC40IDYuNSA2LjUgMTQuNCA2LjUgMjRTMTQuNCA0MS41IDI0IDQxLjUgNDEuNSAzMy42IDQxLjUgMjQgMzMuNiA2LjUgMjQgNi41eiI+PC9wYXRoPjwvc3ZnPg==)" aria-hidden="true" class="swl-inline-icon"> </span><strong>Laravelを使用するメリット</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>学習コストが低い</li>



<li>機能やプラグインが豊富</li>



<li>自由度や拡張性が高い</li>



<li>MVCモデルを採用しているため分業しやすい</li>



<li>データベースの操作が簡単</li>



<li>Composerでパッケージ管理できる</li>



<li>日本語ドキュメントを個人作成して下さっているサイトがあり、英語が苦手な人でも安心</li>
</ul>
</div></div>



<p>はじめてフレームワークの学習をするという方にとってうれしいメリットとして、<strong>学習コストの低さ</strong>が挙げられます。</p>



<p>これは、Laravelで使用する構文のわかりやすさによる恩恵です。</p>



<p>また、フレームワークであるにも関わらず<strong>自由度や拡張性が高く、柔軟な開発が可能</strong>な点もメリットと言えます。（設計をきちんと行わないとソースコードが煩雑化してしまうというデメリットがあるとも言えます……）</p>



<p>ちなみにプログラミングの公式ドキュメントというと英語で書かれていることも多いですが、Laravelには<a href="https://readouble.com/">Readouble</a>という<strong>川瀬裕久さんが<span class="swl-marker mark_yellow">個人運営</span>されている日本語ドキュメントサイト</strong>があります。</p>



<p>これも非常に大きなメリットのひとつと言えます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>僕も英語が苦手なので、Laravelで分からないことがあったときはまっさきに<a href="https://readouble.com/">Readouble</a>を訪ねています！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>運営して下さっている川瀬さんと運営を支援して下さっている方々には本当に感謝しています。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">Laravelを使用する「デメリット」</h3>



<p>Laravelの<strong><span class="swl-marker mark_orange">デメリット</span></strong>は以下のとおりです。</p>



<div class="swell-block-capbox cap_box" data-colset="col3"><div class="cap_box_ttl"><span><span data-icon="LsX" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMjcuNSAyNCA0My40IDguMWMuNC0uNC40LTEgMC0xLjRsLTIuMS0yLjFjLS40LS40LTEtLjQtMS40IDBMMjQgMjAuNSA4LjEgNC42Yy0uNC0uNC0xLS40LTEuNCAwTDQuNiA2LjdjLS40LjQtLjQgMSAwIDEuNEwyMC41IDI0IDQuNiAzOS45Yy0uNC40LS40IDEgMCAxLjRsMi4xIDIuMWMuNC40IDEgLjQgMS40IDBMMjQgMjcuNWwxNS45IDE1LjljLjQuNCAxIC40IDEuNCAwbDIuMS0yLjFjLjQtLjQuNC0xIDAtMS40TDI3LjUgMjR6Ij48L3BhdGg+PC9zdmc+)" aria-hidden="true" class="swl-inline-icon"> </span><strong>Laravelを使用するデメリット</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-bad_list -list-under-dashed">
<li>コードが複雑化しやすい</li>



<li>処理速度があまり速くない</li>
</ul>
</div></div>



<p>メリットでもお伝えしたように、Laravelはフレームワークでありながら、開発の自由度や拡張性が高いです。</p>



<p>それゆえに、開発を進める中で<strong>ソースコードが複雑化しやすい</strong>というデメリットもあります。</p>



<p>ただ、この点に関してはきちんと設計をして、読みやすいコードや適切なファイル管理を意識することで緩和することが可能です。</p>



<p>また、Laravelには様々な機能が備わっています。</p>



<p>そのため、どうしても<strong>処理に時間がかかってしまいます。</strong></p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>表示速度が重要なWebアプリを開発する場合は、Laravel以外の選択肢も考える必要が出てくるかもしれません……</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading">【解説①】Laravelの使用準備 ～ インストール（導入）</h2>



<p class="is-style-bg_stripe">それでは、本章から実際に<strong>Laravelのインストール</strong>を行っていきましょう。</p>



<h3 class="wp-block-heading">STEP１　Composerのインストール</h3>



<p class="is-style-bg_stripe">Laravelを導入する方法はいくつかあります。<br>この記事では<strong><span class="swl-marker mark_yellow">Composerを利用してインストールする方法</span></strong>をご紹介します。</p>



<p><strong>Composerのインストール方法</strong>については<a href="https://kekenta-it-blog.com/composer-install/">以下の記事</a>で詳しく解説しています。</p>



<p>初めてお使いになる方は、まずはこちらの記事をご覧ください。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/08/eye-catch__composer-install__9757-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/composer-install/">【Windows】Composerのインストール方法｜エラー時の対処も解説</a>
						<span class="p-blogCard__excerpt">こんにちは！　ケケンタです。 この記事ではPHPでWebアプリ開発を行うなら必須の Composerのインストール方法（Windows版） を解説していきます。 PHPを始めたばかりの&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p class="is-style-icon_info">念のため補足として、LaravelはPHPのフレームワークのため、大前提としてお使いのPCに<strong><span class="swl-marker mark_orange">PHP自体がインストールされている必要</span></strong>があります。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP２　Laravelプロジェクトの作成</h3>



<p class="is-style-bg_stripe">Composerのインストールが完了したら、早速<strong>Laravelのプロジェクトディレクトリ</strong>を作成していきましょう。</p>



<p>プロジェクトディレクトリを作成するときは<code>composer</code>コマンドを使用します。</p>



<p>なお、プロジェクトディレクトリは、<strong><span class="swl-marker mark_yellow">コマンドを実行したディレクトリ内に作成</span></strong>されます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>今回はわかりやすく<strong>「デスクトップ」にプロジェクトディレクトリを作成する</strong>ことにします。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<div class="swell-block-step is-style-default" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">デスクトップでターミナルを開く</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe u-mb-ctrl u-mb-20">まずはデスクトップ上で<strong>ターミナル（Windows PowerShell）</strong>を開きましょう。</p>



<p class="is-style-balloon_box u-mb-ctrl u-mb-20"><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>デスクトップ上でターミナルを開く方法</strong></p>



<div class="swell-block-step is-style-small" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number"><span class="__shape u-col-main" role="presentation"></span><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-m">デスクトップ上で右クリック</div><div class="swell-block-step__body">

</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number"><span class="__shape u-col-main" role="presentation"></span><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-m">「ターミナルで開く」をクリック</div><div class="swell-block-step__body">

</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number"><span class="__shape u-col-main" role="presentation"></span><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-m">ターミナルが開く</div><div class="swell-block-step__body"><div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="1018" height="633" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/open-terminal.jpg" alt="デスクトップ上でターミナルを開く" class="wp-image-12376" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/open-terminal.jpg 1018w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/open-terminal-300x187.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/open-terminal-768x478.jpg 768w" sizes="(max-width: 1018px) 100vw, 1018px" /><figcaption class="wp-element-caption">デスクトップ上でターミナルを開く</figcaption></figure>
</div></div></div>
</div>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">プロジェクトを作成するコマンドを実行する</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">デスクトップ上でターミナルを開いたら、<strong>以下のコマンド</strong>を実行します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer create-project laravel/laravel example-project</code></pre></div>



<p class="is-style-icon_pen">末尾の<code>example-project</code>が<strong>プロジェクトディレクトリ名（任意の名前）</strong>です。</p>



<div class="wp-block-group is-style-big_icon_memo u-mb-ctrl u-mb-30"><div class="wp-block-group__inner-container">
<p>ちなみに、<strong>Laravelのバージョンを指定したいとき</strong>は以下のように<code>:^バージョン</code>と入力します。<br>※ダブルクォーテーションで囲っていることにご注意ください。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>composer create-project &quot;laravel/laravel:^10.0&quot; example-project</code></pre></div>
</div></div>



<p class="has-text-align-center is-style-balloon_box"><strong>プロジェクトディレクトリ作成中のターミナルの様子</strong></p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="575" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/create-laravel-project-on-terminal-1024x575.jpg" alt="Laravelプロジェクトの作成" class="wp-image-12375" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/create-laravel-project-on-terminal-1024x575.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/create-laravel-project-on-terminal-300x168.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/create-laravel-project-on-terminal-768x431.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/create-laravel-project-on-terminal.jpg 1210w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Laravelプロジェクトの作成</figcaption></figure>
</div></div></div>
</div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-first-step3">STEP３　トップページを表示する</h3>



<p class="is-style-bg_stripe">続いて、作成した<strong>Laraveプロジェクトのトップページを表示</strong>してみましょう。</p>



<div class="swell-block-step" data-num-style="circle">
<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">ターミナルでプロジェクトディレクトリ内へ移動する</div><div class="swell-block-step__body">
<p>以下のコマンドでプロジェクトディレクトリ内へ移動します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd example-project</code></pre></div>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/move-to-laravel-project-1-1024x576.jpg" alt="Laravelプロジェクト内へ移動する" class="wp-image-12381" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/move-to-laravel-project-1-1024x576.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/move-to-laravel-project-1-300x169.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/move-to-laravel-project-1-768x432.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/move-to-laravel-project-1.jpg 1126w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Laravelプロジェクト内へ移動する</figcaption></figure>
</div></div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">簡易サーバーを立ち上げる</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe">以下のコマンドを実行すると<strong>簡易的なサーバー</strong>が立ち上がり、<strong>Laravelアプリの動作を実際にブラウザ上で確認できる</strong>ようになります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan serve</code></pre></div>



<p class="is-style-big_icon_caution">あくまでも「開発用の簡易サーバー」なので、本番環境で公開するときはきちんとしたサーバーを用意する必要があります。</p>



<p class="is-style-icon_pen">なお、<strong>簡易サーバーの使用を終了したいとき</strong>はキーボードの<code><strong>Ctrl + C</strong></code>を押します。</p>
</div></div>



<div class="swell-block-step__item"><div class="swell-block-step__number u-bg-main"><span class="__label">STEP</span></div><div class="swell-block-step__title u-fz-l">トップページへアクセスする</div><div class="swell-block-step__body">
<p class="is-style-bg_stripe"><code>php artisan serve</code>コマンドで簡易サーバーが起動できると、以下の画像のように、コマンドプロンプト上に<strong>アクセス用のURL</strong>が表示されます。</p>



<p class="has-text-align-center is-style-balloon_box"><strong>アクセス用のURL</strong></p>


<div class="wp-block-image is-style-shadow size_s u-mb-ctrl u-mb-20">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="576" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-access-url-for-toppage-1-1024x576.jpg" alt="Laravelプロジェクトのトップページアクセス用URL" class="wp-image-12382" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-access-url-for-toppage-1-1024x576.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-access-url-for-toppage-1-300x169.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-access-url-for-toppage-1-768x432.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-access-url-for-toppage-1.jpg 1126w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Laravelプロジェクトのトップページアクセス用URL</figcaption></figure>
</div>


<p class="u-mb-ctrl u-mb-20">このURLを使用することで、実際にブラウザ上でLaravelプロジェクトのトップページを表示することができます。</p>


<div class="swell-block-balloon u-mb-ctrl u-mb-20"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>「Ctrlキー」を押しながらURLをクリックすると簡単にリンク先を開くことができます！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center is-style-balloon_box"><strong>Laravelプロジェクトのトップページ</strong></p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="716" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-toppage-1-1024x716.jpg" alt="Laravelプロジェクトのトップページ" class="wp-image-12383" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-toppage-1-1024x716.jpg 1024w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-toppage-1-300x210.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-toppage-1-768x537.jpg 768w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-toppage-1.jpg 1452w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Laravelプロジェクトのトップページ</figcaption></figure>
</div></div></div>
</div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以上で<strong><span class="swl-marker mark_yellow">Laravelの使用準備 ～ 導入が完了</span></strong>し、トップページにもアクセスできるようになりました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>次の章からは、実際に<strong>Laravelで実際にデータを表示するまでの手順</strong>を解説していきます！</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading">【解説②】Laravelでデータを表示する</h2>



<p class="is-style-bg_stripe">Laravelのプロジェクトディレクトリ内の<strong>初期構成</strong>は以下のようになっています。<br>※バージョン11の場合</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="276" height="694" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/image.png" alt="Laravelのプロジェクトディレクトリ内の初期構成" class="wp-image-12392" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/image.png 276w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/image-119x300.png 119w" sizes="(max-width: 276px) 100vw, 276px" /><figcaption class="wp-element-caption">Laravelのプロジェクトディレクトリ内の初期構成</figcaption></figure>
</div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/なんとも言えない表情-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/なんとも言えない表情-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>なんだかたくさんディレクトリやファイルがあってごちゃごちゃして見えますね……</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>この記事の目的は、「Laravelで初めてデータを表示する！」という部分をご体験いただくことにあるため、各ディレクトリやファイルの詳しい役割については割愛させていただきます。</p>



<p>今回、実際に<strong><span class="swl-marker mark_yellow">編集するファイルは以下の２つ</span></strong>だけです。</p>



<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li><strong>/routes/web.php</strong></li>



<li><strong>/resources/views/example.blade.php</strong>（こちらは後ほど新規作成します）</li>
</ul>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>それでは以下より具体的なステップを踏んで<strong><span class="swl-marker mark_orange">Laravelで初めてのデータ出力</span></strong>をしてみましょう！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP１　ルーティング設定</h3>



<p class="is-style-bg_stripe">まずは<code class="dir_name">routes</code>ディレクトリ内にある<code class="file_name">web.php</code>を普段お使いのエディタで開きます。</p>



<p>すると、はじめから以下のような記述があるかと思います。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP" data-line="5-7"><code>&lt;?php

use Illuminate\Support\Facades\Route;

Route::get(&#39;/&#39;, function () {
    return view(&#39;welcome&#39;);
});
</code></pre></div>



<p>この内、重要なのが<strong>ハイライト行</strong>です。</p>



<p>このソースコードは</p>



<p>「<strong>『/（サイトのドキュメントルート）』へアクセスがあったら『welcome.blade.php』を出力する</strong>」</p>



<p>という意味です。</p>



<p>前章の<a href="#anc-first-step3">STEP３　トップページを表示する</a>でトップページへアクセスしたときのことを思い出してください。</p>



<p>あのときは<code>http://127.0.0.1:8000/</code>（つまりサイトのドキュメントルート）へアクセスしました。</p>



<p>そのときに呼び出されたのが、上記３行のソースコードです。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>Laravelの初期状態ではサイトのドキュメントルートへアクセスすると「welcomeページ」が表示される仕様になっているんですね。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-big_icon_check"><strong>あるURLへアクセスがあったときに特定の処理を返す仕組み</strong>のことを「<strong>ルーティング</strong>」と呼びます。<br><br>Laravelに限った仕組みということではないですが、今後アプリ開発をする上で非常に重要な概念なのでしっかり覚えておきましょう。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>それでは、先ほどのソースコードに<strong><span class="swl-marker mark_yellow">以下の３行を追記</span></strong>してみましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP" data-line="10-12"><code>&lt;?php

use Illuminate\Support\Facades\Route;

Route::get(&#39;/&#39;, function () {
    return view(&#39;welcome&#39;);
});

// 以下の３行を追加
Route::get(&#39;/test&#39;, function () {
    return view(&#39;example&#39;);
});
</code></pre></div>



<p>そして、<code>http://127.0.0.1:8000/test</code>へアクセスしてみると……</p>


<div class="wp-block-image is-style-shadow size_s">
<figure class="aligncenter size-full"><img decoding="async" width="960" height="510" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-not-found.jpg" alt="ページが見つからない（404エラー）" class="wp-image-12420" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-not-found.jpg 960w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-not-found-300x159.jpg 300w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/laravel-not-found-768x408.jpg 768w" sizes="(max-width: 960px) 100vw, 960px" /><figcaption class="wp-element-caption">ページが見つからない（404エラー）</figcaption></figure>
</div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/困った顔-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>エラーが起きてしまいました……</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>それもそのはず、まだ<code class="file_name">example.blade.php</code>を作成していないので、<strong>404エラー（not found）</strong>が返ってきてしまいます。</p>



<p>次のステップでView（ビュー）を作成して、<code>http://127.0.0.1:8000/test</code>にアクセスすると<code class="file_name">example.blade.php</code>が出力されるようにしましょう！</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP２　View（ビュー）の作成</h3>



<p class="is-style-bg_stripe"><code class="dir_name">/resources/views/</code>ディレクトリの中に<code class="file_name">example.blade.php</code>を新規作成します。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="217" height="130" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/image-1.png" alt="example.blade.phpを新規作成" class="wp-image-12415"/><figcaption class="wp-element-caption">example.blade.phpを新規作成</figcaption></figure>
</div>


<p class="is-style-big_icon_check">このように<code class="dir_name">/resources/views/</code>ディレクトリ内に「○○.blade.php」というファイルを配置することで、ソースコードからそのページを呼び出せるようになります。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>続いて、作成した<code class="file_name">example.blade.php</code>の中に以下のソースコードを追加します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php 

echo &#39;Hello World!!&#39;;

?&gt;</code></pre></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>今回はプログラミング学習でお馴染みの「Hello World!!」を出力するようにしてみました。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP３　データの表示</h3>



<p class="is-style-bg_stripe">再び<code>http://127.0.0.1:8000/test</code>へアクセスしてみましょう。</p>


<div class="wp-block-image is-style-shadow size_xs">
<figure class="aligncenter size-full"><img decoding="async" width="627" height="330" src="https://kekenta-it-blog.com/wp-content/uploads/2024/11/image-3.png" alt="example.blade.phpが呼び出される" class="wp-image-12418" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/11/image-3.png 627w, https://kekenta-it-blog.com/wp-content/uploads/2024/11/image-3-300x158.png 300w" sizes="(max-width: 627px) 100vw, 627px" /><figcaption class="wp-element-caption">example.blade.phpが呼び出される</figcaption></figure>
</div>

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>今度は無事に<code class="file_name">example.blade.php</code>が呼び出され、「Hello World!!」が出力されました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">まとめ</h2>



<p>いかがだったでしょうか。</p>



<p>今回は<strong><span class="swl-marker mark_yellow">Laravelの導入方法（インストール）からデータを表示するまでの手順</span></strong>を解説しました。</p>



<p>非常に簡単ではありますが、<strong>Laravelをインストールし、実際にデータを表示するまでの流れ</strong>を体験していただけたかと思います。</p>



<p>実際に開発を行う際には、MVCモデル（モデル、ビュー、コントローラ）という概念を中心として、さらなる学習が必要になります。</p>



<p>これまでにフレームワークの学習をしたことが無いという方にとって、最初はまた新しい知識がたくさん登場して大変かもしれません。</p>



<p>しかし、Laravelを扱えるようになればWebアプリ開発が効率的になります。</p>



<p>さらに、<strong>React</strong>や<strong>Vue.js</strong>のようなフロントエンド向けのライブラリとの連携もしやすい仕組みが用意されており、Laravelの理解を深めることで、きっとその楽しさを体感できるはずです。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>ここまでプログラミングを挫折せずに学習してきた方であれば必ず習得できます！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>当ブログでも、この記事のほかにLaravelの学習や開発で役立つ情報を発信していきます。</p>



<p>そちらもぜひご活用いただけるとうれしいです！</p>



<p>それでは、最後までご覧いただきありがとうございました。</p>


<div class="p-blogParts post_content" data-partsID="12516">
<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong>Laravelのおすすめ記事</strong></p>


<div class="p-postListWrap"><ul class="p-postList -type-simple"><li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-change-dbtable-col-name/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-12-11" aria-label="公開日">2024-12-11</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】カラム名を変更する方法【マイグレーション】</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-12-04" aria-label="公開日">2024-12-04</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】データベーステーブルのカラムタイプを変更する方法【マイグレーション】</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-introduction/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-11-17" aria-label="公開日">2024-11-17</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】インストール方法～初めてのデータ出力の流れを丁寧に解説！</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-10-18" aria-label="公開日">2024-10-18</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-gate-policy/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-10-11" aria-label="公開日">2024-10-11</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】Gate（ゲート）とPolicy（ポリシー）で「認可」機能を実装する</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-validation/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-09-29" aria-label="公開日">2024-09-29</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</h2>		</div>
	</a>
</li>
</ul></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/laravel-introduction/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Laravel11】シーダとファクトリでテストデータを一括作成する方法</title>
		<link>https://kekenta-it-blog.com/laravel-ver11-seeder-factory/</link>
					<comments>https://kekenta-it-blog.com/laravel-ver11-seeder-factory/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Fri, 18 Oct 2024 02:44:05 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Laravel11]]></category>
		<category><![CDATA[シーダ]]></category>
		<category><![CDATA[テストデータ]]></category>
		<category><![CDATA[ファクトリ]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=11960</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/eye-catch__laravel-ver11-seeder-factory__11960-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Webアプリ開発をするときは、実際の画面表示やデータ処理の動きなどを確認するためにテストデータを作成する必要があります。 テストデータは手作業で入力していっても問題ありませんが、それではあまりに非効率です。 そこで今回は [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/eye-catch__laravel-ver11-seeder-factory__11960-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>Webアプリ開発をするときは、実際の画面表示やデータ処理の動きなどを確認するために<strong>テストデータを作成する</strong>必要があります。</p>



<p>テストデータは手作業で入力していっても問題ありませんが、それではあまりに非効率です。</p>



<p>そこで今回は、<strong>Laravel11</strong>で</p>



<p class="has-text-align-center is-style-big_kakko_box"><strong><span class="swl-marker mark_yellow">シーダとファクトリを用いて</span></strong><br><strong><span class="swl-marker mark_yellow">テストデータを<span class="swl-inline-color has-swl-deep-02-color">自動で一括作成する方法</span></span></strong></p>



<p>をご紹介します。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>この記事を読むとわかること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>Laravel11でテストデータを自動で一括作成する方法</li>



<li>シーダとファクトリとは？</li>
</ul>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>シーダとファクトリを活用すると<strong><span class="swl-marker mark_yellow">いつでも簡単にテストデータの登作成できるようになる</span></strong>ため、効率的なアプリ開発が可能になります！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="is-style-balloon_box"><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span>おすすめ記事</p>


<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-validation/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-gate-policy/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】Gate（ゲート）とPolicy（ポリシー）で「認可」機能を実装する</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</span>
			</a>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">シーダとファクトリ</h2>



<p class="is-style-bg_stripe">Laravelには<strong><span class="swl-marker mark_yellow">テストデータを自動作成する仕組み</span></strong>として「<strong>シーダ</strong>」と「<strong>ファクトリ</strong>」の２つが用意されています。</p>



<p>まずは、これら２つについて簡単に解説をします。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-seeder">シーダ（Seeder）とは？</h3>



<p class="is-style-bg_stripe"><strong>シーダ（Seeder）</strong>とは、英語で「<strong>種をまく人</strong>」という意味です。</p>



<p>文字通り<span style="" class="swl-marker mark_yellow"><b>データベースに種（テストデータ）をまく</b></span>というイメージです。</p>



<p>シーダーを用意することで、<strong>コマンドを打つだけでテストデータを簡単に追加可能</strong>です。</p>



<p class="is-style-icon_info">シーダだけでもテストデータを自動追加することは可能です。<br>ただし、その場合は「テストデータひとつにつき、コマンドを１回実行する必要がある」ため、非常に手間がかかります。<br>※このあとご紹介する<a href="#anc-factory">ファクトリ</a>と組み合わせて使用することで、複数のデータを<strong>一括作成</strong>することが可能です。</p>



<p class="is-style-icon_pen">公式ドキュメント（日本語）：<strong>シーディング</strong><br><a href="https://readouble.com/laravel/11.x/ja/seeding.html">https://readouble.com/laravel/11.x/ja/seeding.html</a></p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-factory">ファクトリ（Factory）とは？</h3>



<p class="is-style-bg_stripe"><strong>ファクトリ（Factory）</strong>は、データベースにテストデータを追加する際、各カラムのデフォルト値を自動設定するための仕組みです。</p>



<p>前節でご紹介した<a href="#anc-seeder">シーダ</a>と組み合わせることで、下記のような実装ができます。</p>



<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li><strong>シーダ</strong>　　　→　モデルインスタンスを生成 ＋ データベースへ追加</li>



<li><strong>ファクトリ</strong>　→　シーダーで生成されたモデルインスタンスに<strong>デフォルト値</strong>を設定</li>
</ul>



<p class="is-style-icon_good"><strong>シーダとファクトリを組み合わせる</strong>ことで複数のテストデータを一括作成できる</p>



<p class="is-style-icon_pen">公式ドキュメント（日本語）：<strong>ファクトリ</strong><br><a href="https://readouble.com/laravel/11.x/ja/eloquent-factories.html">https://readouble.com/laravel/11.x/ja/eloquent-factories.html</a></p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading">【手順】シーダとファクトリでテストデータを一括作成する</h2>



<p class="is-style-bg_stripe">本章では、シーダとファクトリを利用して、実際に<strong><span class="swl-marker mark_yellow">複数のテストデータを一括作成する手順</span></strong>を解説します。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p><strong>大まかな手順</strong>は以下のとおりです！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong>テストデータを一括作成する流れ</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li><a href="#anc-step1">ファクトリを作成する</a></li>



<li><a href="#anc-step2">シーダを作成する</a></li>



<li><a href="#anc-step3">モデルを修正する</a></li>



<li><a href="#anc-step4">シーダを実行する</a></li>
</ul>
</div></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>なお、解説をするにあたっては、<strong><span class="swl-marker mark_yellow">以下のテーブル構造を持ったTODOアプリ</span></strong>を例に用います。</p>



<p class="is-style-balloon_box"><strong>（例）TODOアプリのテーブル構造</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>カラム名</th><th>説明</th></tr></thead><tbody><tr><td>title</td><td>タスクのタイトル</td></tr><tr><td>status</td><td>タスクの状態（１: 未着手、２:着手中、３:完了）</td></tr><tr><td>due_date</td><td>タスクの期限</td></tr></tbody></table><figcaption class="wp-element-caption">TODOアプリのテーブル構造</figcaption></figure>



<p class="is-style-icon_pen">実際に手を動かしたい方は、上記構造の<strong>Taskモデル</strong>と<strong>tasksテーブル</strong>を事前にご準備下さい</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-step1">STEP１　ファクトリを作成する</h3>



<p class="is-style-bg_stripe">以下の<strong>コマンド</strong>で<strong>ファクトリ</strong>を作成します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php make:factory TaskFactory</code></pre></div>



<p class="is-style-icon_info"><strong>ファクトリファイル名</strong>は「モデル名+Factory」の形式にすることを推奨します。<br>※理由は「<a href="#anc-step2">STEP２　シーダを作成する</a>」で解説します。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="262" height="224" src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/image-7.png" alt="TaskFactory.phpが生成される" class="wp-image-12108"/><figcaption class="wp-element-caption">TaskFactory.phpが生成される</figcaption></figure>
</div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p class="is-style-bg_stripe">続いて、生成された<code class="file_name">TaskFactory.php</code>の<code>definition()</code>メソッドを以下のように編集します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="TaskFactory.php" data-lang="PHP"><code>use Carbon\Carbon;
use Illuminate\Support\Str;

public function definition(): array
{
    return [
        &#39;title&#39; =&gt; Str::random(20),  // タスクタイトル
        &#39;status&#39; =&gt; 1,               // タスクの状態
        &#39;due_date&#39; =&gt; Carbon::now(), // 期限日
    ];
}</code></pre></div>



<p><strong>ポイント</strong>は、<strong>テーブルの各カラムに</strong>対して、以下のように<strong>デフォルト値を設定</strong>している点です。</p>



<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>title …… Strファサードの<code>random()</code>メソッドで「20文字のランダムな文字列」を生成</li>



<li>status …… 固定値「１」＝「未着手」を指定</li>



<li>due_date …… Carbonライブラリを使用して「今日の日付」を生成</li>
</ul>
</div></div>



<p class="is-style-icon_good">このあと作成する<strong>シーダ</strong>を実行してモデルインスタンスがデータベースへ追加されるときに、上記で設定したデフォルト値が自動設定されます。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-step2">STEP２　シーダを作成する</h3>



<p class="is-style-bg_stripe">以下の<strong>コマンド</strong>で<strong>シーダ</strong>を作成します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php make:seeder TaskSeeder</code></pre></div>



<p class="is-style-icon_pen">シーダファイルの名前は<strong>任意</strong>です。<br>※ここではわかりやすく「TaskSeeder」としています。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="252" height="279" src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/image-8.png" alt="TaskSeeder.phpが生成される" class="wp-image-12119"/><figcaption class="wp-element-caption">TaskSeeder.phpが生成される</figcaption></figure>
</div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p class="is-style-bg_stripe">続いて、生成された<code class="file_name">TaskSeeder.php</code>の<code>run()</code>メソッドを編集します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="TaskSeeder.php" data-lang="PHP"><code>use App\Models\Task;

public function run(): void
{
    // テストデータを「10件」作成する
    Task::factory()-&gt;count(10)-&gt;create();
}</code></pre></div>



<p class="is-style-big_icon_point">ここで重要になってくるのが、先ほど作成した<strong><span class="swl-marker mark_yellow">ファクトリファイル名が「モデル名＋Factory」の形式になっていること</span></strong>です。</p>



<p>これにより、<strong><span class="swl-marker mark_yellow">TaskモデルとTaskFactoryファクトリがLaravelによって自動的に紐づけ</span></strong>されます。</p>



<p>逆に、ファクトリ名が「モデル名＋Factory」の形式になっていない場合、モデルに対応するファクトリをLaravelが見つけだせず、<code>Task::factory()</code>が上手く実行できなくなります。</p>



<p class="is-style-icon_pen">※もし任意のモデルとファクトリを紐づけたい場合は、「<a href="#anc-hosoku">【補足】任意のモデルとファクトリを紐づける</a>」をご覧ください。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-step3">STEP３　モデルを修正する</h3>



<p class="is-style-bg_stripe"><strong>テストデータを自動作成する最後の準備</strong>として、モデルファイルに<strong>以下の２行</strong>を追加します。<br>※場合によってはすでに自動的に追加されているかもしれません。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="Task.php" data-lang="PHP" data-line="1,5"><code>use Illuminate\Database\Eloquent\Factories\HasFactory;

class Task extends Model
{
    use HasFactory; // 追加

    // ~ 省略 ~

}</code></pre></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>ここまでの手順で、<strong>テストデータを一括作成する準備</strong>が整いました！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-step4">STEP４　シーダを実行する</h3>



<p class="is-style-bg_stripe">以下のコマンドを実行することで、指定したシーダが実行され、「<a href="#anc-step1">STEP１　ファクトリを作成する</a>」で設定したデフォルト値がテストデータとしてデータベースへ自動追加されます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan db:seed --class=TaskSeeder</code></pre></div>



<p class="has-text-align-center is-style-balloon_box"><strong>実行結果</strong></p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="411" height="205" src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/image-9.png" alt="シーダの実行結果" class="wp-image-12137" srcset="https://kekenta-it-blog.com/wp-content/uploads/2024/10/image-9.png 411w, https://kekenta-it-blog.com/wp-content/uploads/2024/10/image-9-300x150.png 300w" sizes="(max-width: 411px) 100vw, 411px" /><figcaption class="wp-element-caption">シーダの実行結果</figcaption></figure>
</div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p class="is-style-bg_stripe">なお、<strong>作成済みの複数のシーダを一括実行したい場合</strong>は、「&#8211;class」オプションを除外します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan db:seed</code></pre></div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading" id="anc-hosoku">【補足】任意のモデルとファクトリを紐づける</h2>



<p class="is-style-bg_stripe">「<a href="#anc-step2">STEP２　シーダを作成する</a>」でお伝えしたように、ファクトリファイル名を「モデル名+Factory」の形式にしなかった場合、Laravelが「どのモデルとどのファクトリが対応しているか」を判断できず、自動的な紐づけが行われません。</p>



<p>もしも任意のモデルとファクトリを紐づけたい場合は、以下のように<strong><span class="swl-marker mark_yellow">手動でモデルファイルとファクトリファイルを編集する</span></strong>必要があります。</p>



<p>※以下は、<strong>Sampleモデル</strong>と<strong>SampleTableFactoryファクトリ</strong>を手動で紐づける例です。</p>



<p class="is-style-balloon_box"><strong>Sample.php（モデル）</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="Sample.php" data-lang="PHP"><code>use Database\Factories\Administration\SampleTableFactory;

/**
 * モデルの新ファクトリ・インスタンスの生成
 */
protected static function newFactory()
{
    return SampleTableFactory::new();
}</code></pre></div>



<p class="is-style-balloon_box"><strong>SampleTableFactory.php（ファクトリ）</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="SampleFactory.php" data-lang="PHP"><code>use App\Administration\Sample;
use Illuminate\Database\Eloquent\Factories\Factory;

class SampleFactory extends Factory
{
    /**
     * このファクトリに対応するモデル名
     */
    protected $model = Sample::class;
}</code></pre></div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">まとめ</h2>



<p>以上が、<strong><span class="swl-marker mark_yellow">シーダとファクトリを使用して複数のテストデータを一括作成する方法</span></strong>でした。</p>



<p>Webアプリ開発をするときは、テストデータを作成することで動作確認などを行います。</p>



<p>そんなとき、テストデータをひとつひとつ手動で登録するのではなく、できるだけ効率的な方法を選択できると開発がはかどります。</p>



<p>Laravelにはそのための仕組みであるシーダとファクトリが用意されているため、これまで手動でテストデータを追加していたという方は、ぜひこれを機に活用してみて下さい。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>この記事が少しでも参考になったなら何よりです！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>当ブログではPHPやLaravel、WordPressなどの情報を発信しています。</p>



<p>ご興味のある方はほかの記事もご覧いただけるとうれしいです！</p>



<p>それでは、最後までご覧いただきありがとうございました。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/09/eye-catch__laravel-ver11-validation__11686-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/laravel-ver11-validation/">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</a>
						<span class="p-blogCard__excerpt">Laravelではバリデーションを簡単に実装する仕組みが用意されています。 この記事ではLaravelバージョン11でバリデーションを実装する方法をご紹介します。  この記事で&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/eye-catch__laravel-ver11-gate-policy__11851-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/laravel-ver11-gate-policy/">【Laravel11】Gate（ゲート）とPolicy（ポリシー）で「認可」機能を実装する</a>
						<span class="p-blogCard__excerpt">Webアプリでは、特定の機能を実行する権限があるかどうかをチェックするために「認可」という仕組みを利用します。 PHPのフレームワークであるLaravelには、この「認可&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="12516">
<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong>Laravelのおすすめ記事</strong></p>


<div class="p-postListWrap"><ul class="p-postList -type-simple"><li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-change-dbtable-col-name/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-12-11" aria-label="公開日">2024-12-11</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】カラム名を変更する方法【マイグレーション】</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-12-04" aria-label="公開日">2024-12-04</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】データベーステーブルのカラムタイプを変更する方法【マイグレーション】</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-introduction/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-11-17" aria-label="公開日">2024-11-17</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】インストール方法～初めてのデータ出力の流れを丁寧に解説！</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-10-18" aria-label="公開日">2024-10-18</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-gate-policy/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-10-11" aria-label="公開日">2024-10-11</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】Gate（ゲート）とPolicy（ポリシー）で「認可」機能を実装する</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-validation/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-09-29" aria-label="公開日">2024-09-29</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</h2>		</div>
	</a>
</li>
</ul></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/laravel-ver11-seeder-factory/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</title>
		<link>https://kekenta-it-blog.com/laravel-ver11-validation/</link>
					<comments>https://kekenta-it-blog.com/laravel-ver11-validation/#respond</comments>
		
		<dc:creator><![CDATA[ケケンタ]]></dc:creator>
		<pubDate>Sun, 29 Sep 2024 05:03:22 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[Laravel11]]></category>
		<category><![CDATA[バリデーション]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[リクエストフォーム]]></category>
		<guid isPermaLink="false">https://kekenta-it-blog.com/?p=11686</guid>

					<description><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/09/eye-catch__laravel-ver11-validation__11686-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>Laravelではバリデーションを簡単に実装する仕組みが用意されています。 この記事ではLaravelバージョン11でバリデーションを実装する方法をご紹介します。 バリデーションとは？ まずは「そもそもバリデーションとは [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://kekenta-it-blog.com/wp-content/uploads/2024/09/eye-catch__laravel-ver11-validation__11686-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>Laravelではバリデーションを簡単に実装する仕組みが用意されています。</p>



<p>この記事では<strong><span class="swl-marker mark_yellow">Laravelバージョン11でバリデーションを実装する方法</span></strong>をご紹介します。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>この記事で分かること</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-check_list -list-under-dashed">
<li>Laravelバージョン11でバリデーションを実装する基本的な方法</li>



<li>バリデーションのエラーメッセージのカスタマイズ方法</li>



<li>フォームリクエストを利用して高度なバリデーションカスタマイズを行う方法</li>
</ul>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>Webアプリを開発するならバリデーション実装は必須です！<br>この記事が少しでもお役に立てば何よりです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-gate-policy/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】Gate（ゲート）とPolicy（ポリシー）で「認可」機能を実装する</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</span>
			</a>
		</div>

<div class="swell-block-postLink">			<a href="https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/" class="c-blogLink -internal" data-style="text">
				<!-- <i class="c-blogLink__icon icon-link" role="presentation"></i> -->
				<span class="c-blogLink__icon">
					<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-link __svg" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false"><path d="M21.2 30.2c-.5 0-1-.2-1.4-.6l-.7-.7c-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l7.1-7.1c2.3-2.3 5.3-3.5 8.5-3.5s6.2 1.2 8.5 3.5c4.7 4.7 4.7 12.3 0 17l-3.5 3.5c-.8.8-2 .8-2.8 0-.8-.8-.8-2 0-2.8l3.5-3.5c3.1-3.1 3.1-8.2 0-11.3-1.5-1.5-3.5-2.3-5.7-2.3-2.1 0-4.2.8-5.7 2.3l-7.1 7.1c-1.5 1.5-2.3 3.5-2.3 5.7s.8 4.2 2.3 5.7l.7.7c.8.8.8 2 0 2.8-.4.3-.9.5-1.4.5z" /><path d="M13.4 46.6c-3.1 0-6.1-1.2-8.5-3.5-2.3-2.3-3.5-5.3-3.5-8.5s1.2-6.2 3.5-8.5l3.5-3.5c.8-.8 2-.8 2.8 0 .8.8.8 2 0 2.8l-3.5 3.5c-1.5 1.5-2.3 3.5-2.3 5.7 0 2.1.8 4.2 2.3 5.7 3.1 3.1 8.2 3.1 11.3 0l7.1-7.1c1.5-1.5 2.3-3.5 2.3-5.7 0-2.1-.8-4.2-2.3-5.7l-.7-.7c-.8-.8-.8-2 0-2.8.8-.8 2-.8 2.8 0l.7.7c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5l-7.1 7.1c-2.3 2.3-5.3 3.5-8.4 3.5z" /></svg>				</span>
				<span class="c-blogLink__text">【Laravel】データベーステーブルのカラムタイプを変更する方法【マイグレーション】</span>
			</a>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2025/03/eye-catch__school-php-and-wp__14099-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/school-php-and-wp/">PHPやWordPressを学ぶのにおすすめのプログラミングスクール【７選】</a>
						<span class="p-blogCard__excerpt">僕はこれまで独学でPHPを学習してきました。結論から言えば、それでもPHPを習得することはできました。 しかし、それに費やした累計学習期間は1年ほど。モチベーション&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">バリデーションとは？</h2>



<p>まずは「そもそもバリデーションとは何か？」、　「その役割とは？」についてお伝えします。</p>



<div class="swell-block-capbox cap_box" data-colset="col1"><div class="cap_box_ttl"><span><span data-icon="LsLightbulb" data-id="0" style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" aria-hidden="true" class="swl-inline-icon"> </span><strong>バリデーションとは？</strong></span></div><div class="cap_box_content">
<p>バリデーションとは、簡単にいうと<strong>ユーザの入力値が意図した値になっているかどうかを検証すること</strong>です。</p>
</div></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>そんなバリデーションの<strong>具体的な役割</strong>は以下の通りです。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong>バリデーションの役割</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-check_list">
<li>ユーザの入力値を制御することでWebアプリにおけるデータの整合性を保つ</li>



<li>悪意あるユーザからのセキュリティ攻撃を予防する</li>
</ul>
</div></div>



<p>バリデーションを実装することでWebアプリを安全に稼働できます。</p>



<p class="is-style-icon_info">逆にいえば、バリデーションを実装しないと、悪意あるユーザによるセキュリティ攻撃を素通りさせることになり、<strong><span class="swl-marker mark_orange">重要情報の漏洩などの被害が発生する危険性が高まります。</span></strong></p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading">【基本】バリデーションの実装方法</h2>



<p class="is-style-bg_stripe">本章より<strong><span class="swl-marker mark_yellow">Laravelバージョン11でバリデーションを実装する方法</span></strong>を解説します。</p>



<p>バリデーションの実装方法を解説する上で、<strong>入力フォーム</strong>や<strong>そこからの値を受け取りデータベースへ保存する処理</strong>などがあると話が進めやすいため、この記事では以下の例をイメージしながら解説していきます。</p>



<p class="is-style-balloon_box"><strong>この記事で扱うWebアプリと処理の例</strong></p>



<div class="wp-block-group has-border -border01"><div class="wp-block-group__inner-container">
<ul class="wp-block-list is-style-check_list">
<li>TODOアプリ</li>



<li>タスクの登録処理</li>
</ul>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>上記の例にそって、以下よりルーティングやコントローラーなどのソースコードをご紹介していきます！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">ルーティング</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="web.php" data-lang="PHP"><code>// タスク登録ページを表示するルーティング
Route::get(&#39;/tasks/create&#39;, [TasksController::class, &#39;create&#39;])-&gt;name(&#39;tasks.create&#39;);

// タスク登録処理を実行するルーティング
Route::post(&#39;/tasks/create&#39;, [TasksController::class, &#39;store&#39;]);</code></pre></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">バリデーションルールの設定</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="TasksController.php" data-lang="PHP" data-line="14-17"><code>/*
 * タスク登録ページ（create.blade.php）を表示
 */
public function create()
{
    return view(&#39;tasks.create&#39;);
}

/*
 * タスク登録処理
 */
public function store(Request $request, Task $task)
{
    // バリデーションルール（★）
    $validated = $request-&gt;validate([
        // 【形式】&#39;$requestのキー名（name属性名）&#39; =&gt; &#39;ルール１|ルール２……&#39;,
        &#39;title&#39; =&gt; &#39;required|max:50&#39;,
    ]);

    // タスク登録処理
    $task-&gt;title = $request-&gt;title;
    $task-&gt;save();

    return redirect()-&gt;route(&#39;tasks.index&#39;);  // タスク一覧ページへリダイレクト（※本記事ではページファイル省略）
}</code></pre></div>



<p>上記の例では、<code>title</code>に<strong><span class="swl-marker mark_blue">以下２つのバリデーションルールを適用</span></strong>しています。</p>



<div class="swell-block-capbox cap_box is-style-onborder_ttl2"><div class="cap_box_ttl"><span><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong>上記のソースコードで適用しているバリデーションルール</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list is-style-num_circle -list-under-dashed">
<li>required（入力必須）</li>



<li>max:50（50文字まで入力許可）</li>
</ul>
</div></div>



<p>このように、Laravel11では<strong><span class="swl-marker mark_yellow">データベースへの保存処理の前にバリデーションルールを記述する</span></strong>ことで、そのデータに対して簡単にバリデーションを実装することが可能です。</p>



<p class="is-style-icon_pen">バリデーションエラーが発生した際に出力する<strong>エラーメッセージ</strong>については<a href="#anc-err-print">次節</a>で解説します。</p>



<p class="is-style-icon_book">【日本語ドキュメント】<a href="https://readouble.com/laravel/11.x/ja/validation.html">https://readouble.com/laravel/11.x/ja/validation.html</a><br>参照項目：「使用可能なバリデーションルール」</p>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading" id="anc-err-print">エラーメッセージの出力</h3>



<p>続いて、バリデーションによって入力エラーが発生したときに出力する<strong>エラーメッセージ</strong>について解説します。</p>



<p class="is-style-icon_info"><strong><span class="swl-marker mark_orange">Laravel11では日本語版エラーメッセージ用ファイルがデフォルトで用意されていません。</span></strong><br>そのため、エラーメッセージを日本語で出力させるためには、後述する<a href="#anc-err-custom">エラー内容をカスタマイズする</a>の解説内容もあわせて対応する必要があります。</p>



<p><strong><span class="swl-marker mark_yellow">エラーメッセージの出力方法</span></strong>は<strong>大きく２つ</strong>あります。</p>



<div class="swell-block-capbox cap_box"><div class="cap_box_ttl"><span><strong>バリデーションのエラーメッセージを出力する「２つ」の方法</strong></span></div><div class="cap_box_content">
<ul class="wp-block-list -list-under-dashed is-style-check_list">
<li>エラーメッセージを項目ごとにひとつずつ出力する</li>



<li>複数項目のエラーメッセージを一か所にまとめて出力する</li>
</ul>
</div></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p class="is-style-balloon_box"><strong>方法①　エラーメッセージを項目ごとにひとつずつ出力する</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="create.blade.php" data-lang="PHP"><code>&lt;form action=&quot;{{ route(&#39;tasks.create&#39;) }}&quot; method=&quot;post&quot;&gt;
    @csrf
    &lt;p&gt;
        @error(&#39;title&#39;)
            &lt;div class=&quot;alert alert-danger&quot;&gt;{{ $message }}&lt;/div&gt;
        @enderror
        &lt;label for=&quot;title&quot;&gt;タイトル&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;title&quot; value=&quot;{{ old(&#39;title&#39;) }}&quot;&gt;
    &lt;/p&gt;
    &lt;input type=&quot;submit&quot; value=&quot;登録&quot;&gt;
&lt;/form&gt;</code></pre></div>



<p class="is-style-big_icon_check"><code>@error('DB上のカラム名')</code>を使用することで、該当項目のバリデーションエラーが発生したときにエラーメッセージを出力することが可能です。<br><br>また、value属性に<code>old('name属性の値')</code>のように記述しておくことで、エラー発生時に入力されていた値がフォームに保持されるようになります。<br>※<code>old('name属性の値')</code>が無いとエラーが発生する度に入力内容が消えてしまい、再入力の手間が増えます。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p class="is-style-balloon_box"><strong>方法②　複複数項目のエラーメッセージを一か所に出力する</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="create.blade.php" data-lang="PHP"><code>@if ($errors-&gt;any())
    &lt;div class=&quot;alert alert-danger&quot;&gt;
        &lt;ul&gt;
            @foreach ($errors-&gt;all() as $error)
                &lt;li&gt;{{ $error }}&lt;/li&gt;
            @endforeach
        &lt;/ul&gt;
    &lt;/div&gt;
@endif
&lt;form action=&quot;{{ route(&#39;tasks.create&#39;) }}&quot; method=&quot;post&quot;&gt;
    @csrf
    &lt;p&gt;
        &lt;label for=&quot;title&quot;&gt;タイトル&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;title&quot; value=&quot;{{ old(&#39;title&#39;) }}&quot;&gt;
    &lt;/p&gt;
    &lt;input type=&quot;submit&quot; value=&quot;登録&quot;&gt;
&lt;/form&gt;</code></pre></div>



<p class="is-style-big_icon_check"><code>@if ($errors-&gt;any())</code>でエラーメッセージの有無をチェックしています。<br>もしバージョンエラーがあれば、<code>@foreach ($errors-&gt;all() as $error)</code>でループを回して、エラーメッセージをひとつずつ出力します。<br><br>また、value属性に<code>old('name属性の値')</code>のように記述しておくことで、エラー発生時に入力されていた値がフォームに保持されるようになります。<br>※<code>old('name属性の値')</code>が無いとエラーが発生する度に入力内容が消えてしまい、再入力の手間が増えます。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>このように、バリデーションエラーによるエラーメッセージの出力方法は大きく２つあります。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>ただ、エラーが発生した項目ごとにエラーメッセージを出力した方が、ユーザにとっても分かりやすいと思うので、個人的には<strong>①の方法を使用する機会が多いのではないか</strong>と思っています。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h2 class="wp-block-heading" id="anc-err-custom">エラー内容をカスタマイズする</h2>



<p class="is-style-icon_info">バージョンによりますが、前述したようにLaravel11ではデフォルトだと<strong>バリデーションのエラーメッセージ用のファイルが用意されていません。</strong></p>



<p>本章では、そのファイルの用意方法を含め、<strong><span class="swl-marker mark_yellow">エラーメッセージ・項目名のカスタマイズ方法</span></strong>を解説します。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP１　日本語向けのバリデーション用ファイルを用意する</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan lang:publish</code></pre></div>



<p>上記のコマンドを実行すると、プロジェクトディレクトリ直下に<code class="dir_name">lang/en</code>ディレクトリが生成されます。</p>



<p>このを<code class="dir_name">en</code>を<code class="dir_name">lang</code>直下で複製し、そのディレクトリ名を<code class="dir_name">ja</code>とします。</p>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="180" height="133" src="https://kekenta-it-blog.com/wp-content/uploads/2024/09/image.png" alt="enディレクトリ複製後のlangディレクトリ" class="wp-image-11692"/><figcaption class="wp-element-caption">enディレクトリ複製後のlangディレクトリ</figcaption></figure>
</div>


<p class="is-style-icon_good">この<code class="dir_name">ja</code>内の<code class="file_name">validation.php</code>を編集することで、エラーメッセージを日本語対応させることが可能です。</p>



<p class="is-style-big_icon_caution">なお前提として、プロジェクトディレクトリ直下の<code class="file_name">.env</code>ファイル内で<strong><code>APP_LOCALE=ja</code></strong>となっている必要があります。<br><br>※初期値は「en」になっており、この状態だと<code class="dir_name">lang/en</code>ディレクトリが参照されてしまいます。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP２　エラーメッセージのカスタマイズ</h3>



<p>エラーメッセージをカスタマイズするときは、<code class="dir_name">ja</code>内の<code class="file_name">validation.php</code>を編集するとお伝えしました。</p>



<p>例えば、<code>required</code>ルールによるエラーメッセージを編集するときは以下のようにします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="validation.php" data-lang="PHP"><code>// 変更前
&#39;required&#39; =&gt; &#39;The :attribute field is required.&#39;,

// 変更後
&#39;required&#39; =&gt; &#39;:attribute は必須です。&#39;,</code></pre></div>



<p class="is-style-big_icon_check"><code>:attribute</code>の部分には、<strong>エラーが発生した項目名</strong>が自動設定されます。</p>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP３　項目名のカスタマイズ</h3>



<p>エラーメッセージ上の項目名は、<strong>デフォルトだとデータベースで使用しているカラム名</strong>になります。</p>



<p>しかし、それでは「titleは必須です」のようなメッセージとなり、ユーザにとって分かりづらい内容になってしまいます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>そこで、本節では<strong>項目名のカスタマイズ方法</strong>をご紹介します！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p><code class="file_name">validation.php</code>の下の方にある<code>attributes</code>へ、以下のように</p>



<p>「<strong>キー名（DB上のカラム名） =&gt; &#8216;任意の項目名&#8217;</strong>」と記述することで項目名を簡単にカスタマイズできます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="validation.php" data-lang="PHP"><code>&#39;attributes&#39; =&gt; [
    &#39;title&#39; =&gt; &#39;タイトル&#39;,
],</code></pre></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>以上のように<strong><span class="swl-marker mark_yellow">「バリデーション用ファイル」を用意することで、エラーメッセージが正常に出力される</span></strong>ようになります。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/11/kekenta-icon-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>カスタマイズも簡単にできますね！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">高度なバリデーションの実装方法</h2>



<p class="is-style-bg_stripe">Laravelには<strong>フォームリクエスト</strong>という、<strong><span class="swl-marker mark_yellow">より複雑なバリデーションを実装できるクラス</span></strong>が用意されています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>より複雑なバリデーションシナリオの場合は、「フォームリクエスト」を作成することをお勧めします。フォームリクエストは、独自のバリデーションおよび認可ロジックをカプセル化するカスタムリクエストクラスです。フォームリクエストクラスを作成するには、<code>make:request</code>&nbsp;Artisan CLIコマンドを使用します。</p>



<p>引用元：<a href="https://readouble.com/laravel/11.x/ja/validation.html">Laravel11日本語ドキュメント</a>（<a href="https://readouble.com/laravel/11.x/ja/validation.html">https://readouble.com/laravel/11.x/ja/validation.html</a>）</p>
</blockquote>



<p>基本的なバリデーション実装では、<strong>コントローラーの登録処理メソッド内にバリデーションルールを記載</strong>していました。</p>



<p class="is-style-icon_good">フォームリクエストを利用することで、バリデーション関係の処理をコントローラーから切り離し、なおかつ<strong>複雑なバリデーションの実装が可能</strong>になります。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>以下より<strong>フォームリクエストを利用してバリデーションを実装する手順</strong>を解説します！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP１　フォームリクエストの作成</h3>



<p class="is-style-bg_stripe">以下のコマンドを実行することで<strong>フォームリクエストファイル</strong>が作成されます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan make:request 任意のフォームリクエストファイル名</code></pre></div>



<p class="is-style-balloon_box"><strong>実行例</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php artisan make:request StoreTaskRequest</code></pre></div>


<div class="wp-block-image is-style-shadow">
<figure class="aligncenter size-full"><img decoding="async" width="214" height="154" src="https://kekenta-it-blog.com/wp-content/uploads/2024/09/image-1.png" alt="フォームリクエストファイル生成後のファイル構造" class="wp-image-11710"/><figcaption class="wp-element-caption">フォームリクエストファイル生成後のファイル構造</figcaption></figure>
</div>


<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP２　フォームリクエストファイルの編集</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="StoreTaskRequest.php" data-lang="PHP"><code>class StoreTaskRequest extends FormRequest
{
    /*
     * リクエストの認証制御
     * ※このメソッドをカスタマイズすることでリクエストの認証範囲を変更できますが、
     * 　当記事では割愛します。
     */
    public function authorize(): bool
    {
        return true; // falseをtrueへ変更（★）
    }

    /*
     * バリデーションルール
     */
    public function rules(): array
    {
        return [
            &#39;title&#39; =&gt; &#39;required|max:50&#39;,
        ];
    }

    /*
     * バリデーションメッセージのカスタマイズ
     * （★）手動で追加
     */
    public function messages(): array
    {
        return [
            &#39;title.required&#39; =&gt; &#39;:attribute の入力は必須です。&#39;,
        ];
    }
}</code></pre></div>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<p>ポイントを解説します。</p>



<dl class="swell-block-dl is-style-vtabel">
<dt class="swell-block-dl__dt">authorize()</dt>



<dd class="swell-block-dl__dd">
<p><code>authorize()</code>は<strong>リクエストの認証を制御するためのメソッド</strong>です。</p>



<p>デフォルトではfalseが返るようになっていますが、このままの状態だと403エラーが発生するため、ここをtrueへ変更して<strong>すべてのリクエストが認証される</strong>ようにします。</p>



<p class="is-style-icon_pen">この記事では省略しますが、authorize()をカスタマイズすることでより正確な認証範囲の制御が可能になります。</p>
</dd>



<dt class="swell-block-dl__dt">rules()</dt>



<dd class="swell-block-dl__dd">
<p><code>rules()</code>には<strong>バリデーションルールを記載</strong>します。</p>



<p class="is-style-icon_pen">【日本語ドキュメント】<a href="https://readouble.com/laravel/11.x/ja/validation.html">https://readouble.com/laravel/11.x/ja/validation.html</a><br>参照項目：「使用可能なバリデーションルール」</p>
</dd>



<dt class="swell-block-dl__dt">messages()</dt>



<dd class="swell-block-dl__dd">
<p><code>messages()</code>は<strong>バリデーションエラーが発生した際のエラーメッセージをカスタマイズするためのメソッド</strong>です。</p>



<p>このメソッドを利用することで、前項「<a href="#anc-err-custom">エラー内容をカスタマイズする</a>」でご紹介した<code class="file_name">validation.php</code>を使わなくても<strong><span class="swl-marker mark_yellow">エラーメッセージを個別にカスタマイズすることが可能</span></strong>です。</p>



<p>フォームリクエストを作成した時点では用意されていないため、手動で追加する必要があります。</p>



<p class="is-style-icon_info">メソッド名は「messages」とする必要がある点にご留意ください。</p>
</dd>
</dl>



<p class="has-text-align-center"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxwYXRoIGQ9Ik0yMDEuNCAzNzQuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMGwxNjAtMTYwYzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDIyNCAzMDYuNyA4Ni42IDE2OS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM2wxNjAgMTYweiI+PC9wYXRoPjwvc3ZnPg==)" data-icon="FasAngleDown" data-id="1" aria-hidden="true" class="swl-inline-icon"> </span></p>



<h3 class="wp-block-heading">STEP３　コントローラーの編集</h3>



<p class="is-style-bg_stripe">フォームリクエストファイルでバリデーションを実装したため、コントローラーにはバリデーション関係の処理を書く必要が無くなります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-file="TaskController.php" data-lang="PHP"><code>/*
 * タスク登録処理
 */
// public function store(Request $request, Task $task)　　　　 // 変更前
public function store(StoreTaskRequest $request, Task $task)  // 変更後
{
    // バリデーションルール（★削除）
    // $validated = $request-&gt;validate([
    //     &#39;title&#39; =&gt; &#39;required|max:50&#39;,
    // ]);

    $task-&gt;title = $request-&gt;title;
    $task-&gt;save();

    return redirect()-&gt;route(&#39;tasks.index&#39;);
}</code></pre></div>



<p class="is-style-icon_info">ひとつ注意点として、メソッドの引数にあるRequest型を、<strong><span class="swl-marker mark_yellow">紐づけたいフォームリクエストの型に書き換える必要</span></strong>があります。</p>



<p>今回の例ではStoreTaskRequest型に書き換えています。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>このように、フォームリクエストを使用すればコントローラーからバリデーション処理を切り離すことができ、かつより細かな制御をすることができるようになります。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4374558503914683"
     crossorigin="anonymous"></script>
<!-- ディスプレイ【横長】 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-4374558503914683"
     data-ad-slot="9744298852"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">まとめ</h2>



<p>以上が、<strong><span class="swl-marker mark_yellow">Laravelバｰジョン11でバリデーションを実装する方法</span></strong>でした。</p>



<p>11以前のバージョンと書き方が同じ箇所もあるかと思いますが、大きな違いは、<strong>デフォルトでバリデーションメッセージ用のファイル（<code class="dir_name">lang</code>）がインストールされていない</strong>ことです。</p>



<p>Laravelはドキュメントを日本語訳して下さっている方々がいるため、何か困ったことがあればそちらを参照すると大体の問題は解決できるかと思います。</p>



<p class="is-style-icon_pen">【日本語ドキュメント】<a href="https://readouble.com/laravel/11.x/ja/">https://readouble.com/laravel/11.x/ja/</a></p>



<p>しかし、その方のプログラミング歴によっては、それでもドキュメントを読み解くのは大変なことも多々あるかと思います。（ドキュメントの言い回しはなかなか慣れません……）</p>



<p>今回はそうした方々の一助となればという思いもあり、簡単ではありますが、バリデーションに関する記事を書かせていただきました。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2023/07/キリッ-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ケケンタ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>この記事が少しでもお役に立ったなら何よりです！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>それでは、最後までご覧いただきありがとうございました！</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/eye-catch__laravel-ver11-seeder-factory__11960-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</a>
						<span class="p-blogCard__excerpt">Webアプリ開発をするときは、実際の画面表示やデータ処理の動きなどを確認するためにテストデータを作成する必要があります。 テストデータは手作業で入力していっても&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type2" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://kekenta-it-blog.com/wp-content/uploads/2024/10/eye-catch__laravel-ver11-gate-policy__11851-300x169.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://kekenta-it-blog.com/laravel-ver11-gate-policy/">【Laravel11】Gate（ゲート）とPolicy（ポリシー）で「認可」機能を実装する</a>
						<span class="p-blogCard__excerpt">Webアプリでは、特定の機能を実行する権限があるかどうかをチェックするために「認可」という仕組みを利用します。 PHPのフレームワークであるLaravelには、この「認可&#8230;</span>					</div>
				</div>
			</div>
		</div>

<div class="p-blogParts post_content" data-partsID="12516">
<p class="is-style-balloon_box"><span style="--the-icon-svg: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgd2lkdGg9IjFlbSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBhcmlhLWhpZGRlbj0idHJ1ZSIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBkPSJNMzIgNDYuNUgxNmMtMS4xIDAtMi0uOS0yLTJzLjktMiAyLTJoMTZjMS4xIDAgMiAuOSAyIDJzLS45IDItMiAyek00MS43IDE1LjlDNDEuMyAxMyA0MCAxMC4zIDM4LjIgOCAzNC41IDMuMiAyOSAuOCAyMy4xIDEgMTQgMS40IDYuNSA4LjkgNiAxOGMtLjMgNiAyLjQgMTEuNyA3LjIgMTUuNC41LjQuOC45LjggMS41djEuNmMwIDIuMiAxLjggNCA0IDRoMTJjMi4yIDAgNC0xLjggNC00VjM1YzAtLjYuMy0xLjIuOS0xLjcgNS4zLTQgOC0xMC42IDYuOC0xNy40em0tNy4xIDEuN2gtLjNjLS43IDAtMS4zLS41LTEuNS0xLjItLjctMy4yLTMuMi01LjctNi40LTYuMy0uOC0uMS0xLjQtLjktMS4yLTEuN3MuOS0xLjQgMS43LTEuMmM0LjQuOCA4IDQuMiA4LjkgOC42LjEuOC0uNCAxLjYtMS4yIDEuOHoiPjwvcGF0aD48L3N2Zz4=)" data-icon="LsLightbulb" data-id="0" aria-hidden="true" class="swl-inline-icon"> </span><strong>Laravelのおすすめ記事</strong></p>


<div class="p-postListWrap"><ul class="p-postList -type-simple"><li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-change-dbtable-col-name/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-12-11" aria-label="公開日">2024-12-11</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】カラム名を変更する方法【マイグレーション】</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel11-change-dbtable-col-type/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-12-04" aria-label="公開日">2024-12-04</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】データベーステーブルのカラムタイプを変更する方法【マイグレーション】</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-introduction/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-11-17" aria-label="公開日">2024-11-17</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel】インストール方法～初めてのデータ出力の流れを丁寧に解説！</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-seeder-factory/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-10-18" aria-label="公開日">2024-10-18</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】シーダとファクトリでテストデータを一括作成する方法</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-gate-policy/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-10-11" aria-label="公開日">2024-10-11</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】Gate（ゲート）とPolicy（ポリシー）で「認可」機能を実装する</h2>		</div>
	</a>
</li>
<li class="p-postList__item">
	<a href="https://kekenta-it-blog.com/laravel-ver11-validation/" class="p-postList__link">
		<div class="p-postList__body">
			<div class="p-postList__meta">
				<div class="p-postList__times c-postTimes u-thin">
	<time class="c-postTimes__posted icon-posted" datetime="2024-09-29" aria-label="公開日">2024-09-29</time></div>
			</div>
			<h2 class="p-postList__title">【Laravel11】バリデーションの実装方法やエラーメッセージのカスタマイズ</h2>		</div>
	</a>
</li>
</ul></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://kekenta-it-blog.com/laravel-ver11-validation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
