🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

2250閲覧

laravelにて掲示板作成しているのですが、エラーの対処方法が分かりません

hajimeken2

総合スコア12

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/10/13 07:58

編集2019/10/14 00:45

現在ローカル環境にて、laravelを使って掲示板を作成しております。

こちらのサイトを参考にしつつ、
掲示板作成を行っております。

掲示板を作成する為のサイト

テストデータ作成まで進み下記のコマンドを入力しておりますが、

①$ composer dump-autoload
②$ php artisan db:seed

②実行時に下記の様なエラーを出力

Seeding: PostsTableSeeder Illuminate\Database\QueryException : SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\x93\x8A\x8De\x82\xCC...' for column `laravel_bbs`.`posts`.`title` at row 1 (SQL: insert into `posts` (`title`, `body`, `updated_at`, `created_at`) values (ẽ^Cg, {łBeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgB eLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgBeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgeLXgB, 2019-10-13 07:36:36, 2019-10-13 07:36:36)) at C:\xampp\htdocs\laravel\sample\vendor\laravel\framework\src\Illuminate\Database\Connection.php:665 661| // If an exception occurs when attempting to run a query, we'll format the error 662| // message to include the bindings with SQL, which will make this exception a 663| // lot more helpful to the developer instead of just the database's errors. 664| catch (Exception $e) { > 665| throw new QueryException( 666| $query, $this->prepareBindings($bindings), $e 667| ); 668| } 669| Exception trace: 1 PDOException::("SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\x93\x8A\x8De\x82\xCC...' for column `laravel_bbs`.`posts`.`title` at row 1") C:\xampp\htdocs\laravel\sample\vendor\laravel\framework\src\Illuminate\Database\Connection.php:459 2 PDOStatement::execute() C:\xampp\htdocs\laravel\sample\vendor\laravel\framework\src\Illuminate\Database\Connection.php:459 Please use the argument -v to see more details.

PostsTableSeeder

<?php use Illuminate\Database\Seeder; use App\Post; use App\Comment; class PostsTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { factory(Post::class, 50) ->create() ->each(function ($post) { $comments = factory(App\Comment::class, 2)->make(); $post->comments()->saveMany($comments); }); } }

CommentFactory

<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Comment; use Faker\Generator as Faker; $factory->define(App\Comment::class, function (Faker $faker) { return [ 'body' => "コメントです。テキストテキストテキストテキストテキストテキスト。\nテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。", ]; });

PostFactory

<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Post; use Faker\Generator as Faker; $factory->define(App\Post::class, function (Faker $faker) { return [ 'title' => '投稿のタイトル', 'body' => "本文です。テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。\nテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。テキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト。", ]; });

グーグルで検索してましたが、具体的な解決方法が分からず。
大変申し訳ございませんが、具体的な解決方法をご教示頂けましたら
幸いです。

--開発環境
XAMPP
laravel6.0
PHP7.3.9
Mysql10.4.6

envの設定

APP_NAME=Laravel

1APP_ENV=local 2APP_KEY=base64:OHu/GxbDHTcd4QgHW7eC8ojd/zZbBGSLHhnN9y1f6mw= 3APP_DEBUG=true 4APP_URL=http://localhost 5 6LOG_CHANNEL=stack 7 8DB_CONNECTION=mysql 9DB_HOST=localhost 10DB_PORT=3306 11DB_DATABASE=laravel_bbs 12DB_USERNAME=root 13DB_PASSWORD=root 14 15BROADCAST_DRIVER=log 16CACHE_DRIVER=file 17QUEUE_CONNECTION=sync 18SESSION_DRIVER=file 19SESSION_LIFETIME=120 20 21REDIS_HOST=127.0.0.1 22REDIS_PASSWORD=null 23REDIS_PORT=6379 24 25MAIL_DRIVER=smtp 26MAIL_HOST=smtp.mailtrap.io 27MAIL_PORT=2525 28MAIL_USERNAME=null 29MAIL_PASSWORD=null 30MAIL_ENCRYPTION=null 31 32AWS_ACCESS_KEY_ID= 33AWS_SECRET_ACCESS_KEY= 34AWS_DEFAULT_REGION=us-east-1 35AWS_BUCKET= 36 37PUSHER_APP_ID= 38PUSHER_APP_KEY= 39PUSHER_APP_SECRET= 40PUSHER_APP_CLUSTER=mt1 41 42MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" 43MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
データベース内容 ![commentsテーブル](5608d3f00d8dbba022eee22681645b1d.jpeg) ![postsテーブル](d56805c1a52169e4e2f07886b33bf151.jpeg)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/13 08:02

PostsTableSeeder でエラー出てるって言うのにコードを出さない理由はなんでしょうか?
hajimeken2

2019/10/13 08:10

失礼致しました。 コード記載致しました。 他にも不足な情報ありましたらお教え下さい。
退会済みユーザー

退会済みユーザー

2019/10/13 08:19

PostsTableSeederの動作に必要なファイル、二つがたりません。
hajimeken2

2019/10/13 08:32

追記致しました。 参考サイトからそのままコピペしてます。
退会済みユーザー

退会済みユーザー

2019/10/13 08:40

MySQLの初期設定ができていないようですし、バージョンも古いかも。
hajimeken2

2019/10/13 09:37

ご回答ありがとうございます。 Mysqlのバージョンも10.4.6なので そんなに古くないようようですね。 Mysqlの初期設定というxamppでインストール しておりますが、その時の設定の事でしょうか? お手数お掛けしますが、どの部分の設定が出来ていない かご教示頂きたいです。
退会済みユーザー

退会済みユーザー

2019/10/13 12:46

10.4.6ってそれ、MariaDBじゃない?
guest

回答1

0

ベストアンサー

DBの文字コードがlatin1(ラテン文字≒半角英数)になっているので
日本語なんて入らねーよ!

と言われているのだと思います。
utf8系に変えれば解消すると思います。

また、laravelでマイグレーション管理すればそのようなことはまず起こりえませんので
マイグレーション機能の利用をお勧めします

投稿2019/10/13 10:47

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hajimeken2

2019/10/13 11:19

ご回答ありがとうございます。 以下実施しましたが、同様のエラー出たままでした。 ・該当DBの文字書式をutf8に変更 ・該当テーブルを一旦削除 ・下記マイグレーションファイルを utf8にて保存しなおして マイグレーションを実行。  .2019_10_13_create_posts_table.php .2019_10_13_create_comments_table.php 再度下記実施するも、同様のエラーです。 ①$ composer dump-autoload ②$ php artisan db:seed
mikkame

2019/10/13 11:24

DBの文字コードと、テーブルの文字コード、絡むの文字コードは、それぞれ違うのでお気をつけください。 通常、それぞれ上の設定を引き継ぐ(テーブルはDBを、カラムはテーブルを) Laravelの場合、DBの文字コードはLaravelが明示的に指定するのでDBの文字コードは変えなくてもなんとかなる気がしますが。 PHPMyadmin上で文字コードの変更は確認できたでしょうか?
hajimeken2

2019/10/13 11:28

CommentFactory PostFactory をutf8にて保存しなおしたところ上手くいきました! すみません!有難うございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問