composer require laravel/uiが失敗した場合の対処方法 PHP 7.4.8 Laravel4.2.5 Windows10


##目的
Laravel7 のアプリケーションにユーザ認証機能を実装するために、
$ composer require laravel/uiを実行したところエラーとなった。
解決策の備忘録として記載する。

##環境
PHP 7.4.8 
Laravel4.2.5
Windows 10 Pro

##ターミナル（コマンドプロンプト）で実行したコード（1パターン目）

```terminal:コマンドプロンプト
composer require laravel/ui
```

##エラー文（1パターン目）
```terminal:コマンドプロンプト
PS C:\Program Files\Apache Software Foundation\Apache24\htdocs\laravel\helloworld> composer require laravel/ui     
Using version ^3.3 for laravel/ui
./composer.json has been updated
Running composer update laravel/ui
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/ui[v3.3.0, ..., 3.x-dev] require illuminate/console ^8.42 -> found illuminate/console[v8.42.0, ..., 8.x-dev] but these were not loaded, likely because 
it conflicts with another require.
    - Root composer.json requires laravel/ui ^3.3 -> satisfiable by laravel/ui[v3.3.0, 3.x-dev].


Installation failed, reverting ./composer.json and ./composer.lock to their original content.
```

##ターミナル（コマンドプロンプト）で実行したコード（2パターン目）

```terminal:コマンドプロンプト
composer require laravel/ui:^2.4
```

##エラー文（2パターン目）
```terminal:コマンドプロンプト
PS C:\Program Files\Apache Software Foundation\Apache24\htdocs\laravel\helloworld> composer require laravel/ui:^2.4 
./composer.json has been updated
Running composer update laravel/ui
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/ui v2.4.0 requires illuminate/console ^7.0 -> found illuminate/console[v7.0.0, ..., 7.x-dev] but these were not loaded, likely because it conflicts with another require.


Installation failed, reverting ./composer.json and ./composer.lock to their original content.
```

##解決方法
色々なサイトを見てみると、バージョンを変えたら正常にインストールできたという意見が多かった。
以下パッケージリストのサイトを参考に１つずつバージョンを変えて試してみた。
https://packagist.org/packages/laravel/ui

以下キャプチャの赤枠がリリースされているバージョンとなっている。
![1623950171823.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1378980/7be558ff-e62d-4377-67a8-a14904539d57.png)


私の環境では　V3.1.0 で正常にインストールできたので、以下コードで実行した。

```terminal:コマンドプロンプト
composer require laravel/ui:^3.1

```

成功すると以下のような文章が出てきた。

```terminal:コマンドプロンプト
PS C:\Program Files\Apache Software Foundation\Apache24\htdocs\laravel\helloworld> composer require laravel/ui:^3.1
./composer.json has been updated
Running composer update laravel/ui
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking laravel/ui (v3.1.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Downloading laravel/ui (v3.1.0)
  - Installing laravel/ui (v3.1.0): Extracting archive
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/tinker
Discovered Package: laravel/ui
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
74 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
```

 LOGIN機能の設定追加と、DBにテーブルを作成

```
php artisan ui vue --auth

php artisan migrate
```

FrontEndに必要なPackageをインストール
（Node/npmの使用が必要）

```terminal:コマンドプロンプト
npm install
```

 CSS/JSを作成ビルド

```terminal:コマンドプロンプト
npm run dev
```

以下のように　トップページにログインのリンクが出ました。
![laravel_index.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1378980/1421410b-331b-9f72-d39f-ccc831d829e1.png)

ログイン画面
![login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1378980/549339e4-24b3-125c-64bf-ce64646f0df1.png)

登録画面
![register.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1378980/3b37c442-34b8-7e1b-b7af-7525e222ea09.png)

##まとめ
以上でログイン機能を実装することができました。

Laravelのバージョンによって対応が変わるようなので、別のバージョンの方や
この記事で解決できなかった方は以下参考にしてください。

Laravel6/7での実装方法
https://qiita.com/daisu_yamazaki/items/a914a16ca1640334d7a5

Laravel8での実装方法
https://qiita.com/daisu_yamazaki/items/b946594896179abcd203

MAC
https://qiita.com/miriwo/items/767b5f69ffaba85ebf6e

同じ事象を説明した記事
https://qiita.com/PWuttam/items/a29f2af2da796b2969cd