3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel8→6系に変えたら色々苦戦した

Posted at

はじめに

私は現在、PHP/Laravelでポートフォリオ作成をしている学習中の者です。
もし間違っている箇所があればお知らせいただけたら幸いです。

ポートフォリオを作成中に、Laravelのバージョン8系では記述の仕方が変わっていたり、(新しいため)情報も少なく、長い目でみて時間ロスが多く発生すると思い、6系に変えてみようと思いました。

開発初期段階だったので、軽い気持ちで変えてみたら色々エラーが出たので記事にしました。


Laravel6系に変更後

バージョン変更に関しては割愛します。
プロジェクト内のデータが8系の時のままだと以下のようなエラーが出ます。

シーディング実行エラー

ターミナル
$ php artisan migrate:fresh --seed
//注意してお使いください。
//このコマンドはデータベースの中身を全部クリアにしてからシーディングデータを入れ直すものです。

このコマンドでデータベースにデータを入れようとしたところ以下のエラーが発生

エラー内容
Illuminate\Contracts\Container\BindingResolutionException  : Target class [PostTableSeeder] does not exist.

解決法

8系と6系とでは記述が変わっていた為、seederファイルを修正

database/seeds/PostTableSeeder.php
<?php

//namespace Database\Seeders;←削除

use Illuminate\Database\Seeder;
//use Illuminate\Support\Facades\DB;←削除

class PostsTableSeeder extends Seeder
{
//~~

Modelファイルエラー

$ php artisan serve

でlocalhostに繋ぎ確認してみると以下のエラーに

Trait 'Illuminate\Database\Eloquent\Factories\HasFactory' not found

解決法

Laravel8ではHttp/Modelディレクトリの配下に入ってましたが、Laravel6ではHttpディレクトリの配下に直接入れるのがデフォルトのようです。
Httpディレクトリ配下に移し空になったModelディレクトリを削除。
Modelファイルを一部書き換えます。

app/Http/Post.php
<?php

//namespace App\Models;
//↓以下に修正
namespace App;

use Illuminate\Database\Eloquent\Factories\HasFactory;//削除
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;//削除

Controllerエラー

Controllerファイルも書き換えます。

app/Http/Controllers/PostController.php
<?php

namespace App\Http\Controllers;

//use App\Models\Post;
//↓以下に修正
use App\Post;

use Illuminate\Http\Request;

class PostController extends Controller
{

Routingエラー

Routingファイルも書き換えます

routes/web.php
<?php
use Illuminate\Support\Facades\Route;

//use App\Http\Controllers\TestController; //削除
//Route::get('/',[PostController::class, 'index']);
//↓以下のように修正
Route::get('/', 'PostController@index');

ひとまずこれにて無事に6系での開発が進めらる状態になりました。 特に初学者の方はLaravelで何か作り始める前にバージョンはよく考えて決めましょう(笑)
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?