質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
87.20%
Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

PHP

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

解決済

seeder実行時エラーが表示される。

ishidakouiki
iiii

総合スコア46

Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

PHP

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

1回答

0リアクション

0クリップ

154閲覧

投稿2022/08/04 16:08

・やりたい事。
作成した、moviesテーブルとgenresテーブルにseederを実行したい。

・問題点
映画登録サイトを作成中でseederを実行したことろ、

Unable to locate factory with name [default] [App\Genre].

とエラーが表示されました。

・試した事。
① composer dump-autoload
結果→エラーなし。

②作成した、GenreFactroy.phpファイルの

$factory->define(Model::class, function (Faker $faker) { から $factory->define(Genres::class, function (Faker $faker) {

に変更。

結果→変化なし。

・テーブル構成

usesテーブル

2022_08_01_000000_create_users_table.php

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->string('image_path')->nullable(); $table->string('text')->nullable(); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } }

moviesテーブル

2022_08_01_214020_create_movies_table.php

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateMoviesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('movies', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('image_path'); $table->string('title'); $table->string('director'); $table->string('release'); $table->string('evaluation'); $table->string('viewing'); $table->string('review'); $table->unsignedBigInteger('user_id'); $table->timestamps(); //外部キー制約、user情報が削除されたら映画テーブルも削除される $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('movies'); } }

genresテーブル

2022_07_31_214216_create_genres_table.php

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateGenresTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('genres', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('genres'); } }

・シーダーファイル

DatabaseSeeder.php

<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { $this->call(GenresTableSeeder::class); $this->call(MoviesTableSeeder::class); $this->call(UsersTableSeeder::class); } }

GenresTableSeeder.php

<?php use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use App\Genre; class GenresTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $genres = factory(App\Genre::class, 10)->create(); } }

MoviesTableSeeder.php

<?php use Illuminate\Database\Seeder; class MoviesTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $movies = factory(App\Movie::class, 1)->create(); } }

UsersTableSeeder.php

<?php use Illuminate\Database\Seeder; use App\User; class UsersTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { factory(User::class, 10)->create(); } }

・factoriesファイル

GenreFactroy.php

<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Model; use Faker\Generator as Faker; $factory->define(Genres::class, function (Faker $faker) { return [ 'name' => $faker->アニメ, ]; [ 'name' => $faker->ドラマ, ]; });

MovieFactory.php

<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Model; use Faker\Generator as Faker; $factory->define(Movie::class, function (Faker $faker) { return [ 'image_path' => $faker->テスト, 'title' => $faker->テスト, 'director' => $faker->テスト, 'release' => $faker->テスト, 'evaluation' => $faker->テスト, 'viewing' => $faker->テスト, 'review' => $faker->テスト, 'user_id' => $faker->テスト, ]; });

・モデルファイル

User.php

<?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; public function movies() { return $this->hasMany(Movie::class); } /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; }

Movie.php

<?php namespace App; use Illuminate\Database\Eloquent\Model; class Movie extends Model { protected $fillable = ['image_path','title','director','release','evaluation','viewing','review','user_id']; public function user() { return $this->belongsTo(User::class); } } ``````Genre.php <?php namespace App; use Illuminate\Database\Eloquent\Model; class Genre extends Model { protected $fillable = ['name']; }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

phper.k

2022/08/05 05:18

Factory をちゃんと作ってないだけでは?
ishidakouiki

2022/08/05 08:53

Factoryはseederを実行したい、 GenreとMovieのファイルを作成しているのですが、 記載の不備等ありますでしょうか?
phper.k

2022/08/05 08:56

なにかって、 $faker->テスト, こんな書き方ないですよ
ishidakouiki

2022/08/06 10:29

ファクトリーファイルるとseederファイルの記述を変更したら無事実装できました! ありがとうございます!

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Laravel 6

Laravel 6は、オープンソースなPHPのフレームワーク。Webアプリケーションの開発に適しており、バージョン6はLTSです。5.8での向上に加えて、セマンティックバージョニングの採用やLaravel Vaporとのコンパチビリティなどが変更されています。

PHP

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