LoginSignup
6
5

More than 5 years have passed since last update.

LaravelのScaffoldのインストール問題

Posted at

本稿はLaravelの導入を理解している前提で話をします。

とは言っても、あれなのでシンプルに説明します。
composerを入れてください。

composer global require "laravel/installer"

このコマンドでLaravelを入れてください。
.bash_profile.bash_rcのPATHに$HOME/.composer/vendor/binを追加してください。

laravel new xxxと入力して、ファイルを作ってください。
※xxxは任意のサービス名称を入れてください。
MysqlやmariaDB、Postgresqlなど、Sqlite以外のDBを使いたい場合は.envに設定したDBを入れてください。Sqliteの場合は特に必要ありません。

何が起こるか

LaravelはRailsと違ってscaffoldは初期状態では実装されていません。
そこで、インストールする必要があります。

composer require 'laralib/l5scaffold' --dev

その後

config/app.php
'providers' => [
        ...
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,
        Laralib\L5scaffold\GeneratorsServiceProvider::class,

をいれます。

インストールされたかを調べるために
php artisan
と入れます。そうすると、エラーが出るので、以下のファイルを修正します。

vendor/laralib/l5scaffold/src/Makes/MakeController.phpの4行目と21行目を修正します。

5行目

vendor/laralib/l5scaffold/src/Commands/ScaffoldMakeCommand.php
use Illuminate\Console\AppNamespaceDetectorTrait;

vendor/laralib/l5scaffold/src/Commands/ScaffoldMakeCommand.php
use Illuminate\Console\DetectsApplicationNamespace;

21行目

vendor/laralib/l5scaffold/src/Commands/ScaffoldMakeCommand.php
 class ScaffoldMakeCommand extends Command
  {
    use AppNamespaceDetectorTrait, MakerTrait;

vendor/laralib/l5scaffold/src/Commands/ScaffoldMakeCommand.php
 class ScaffoldMakeCommand extends Command
  {
    use DetectsApplicationNamespace, MakerTrait;

また、最後に追加します。

vendor/laralib/l5scaffold/src/Commands/ScaffoldMakeCommand.php
        return $names[$config];


    }

    public function handle() { return $this->fire(); }

合わせて

4行目

vendor/laralib/l5scaffold/src/Makes/MakeController.php
use Illuminate\Console\AppNamespaceDetectorTrait;

vendor/laralib/l5scaffold/src/Makes/MakeController.php
use Illuminate\Console\DetectsApplicationNamespace;

13行目

vendor/laralib/l5scaffold/src/Makes/MakeController.php
 class MakeController
  {
    use AppNamespaceDetectorTrait, MakerTrait;

vendor/laralib/l5scaffold/src/Makes/MakeController.php
 class MakeController
  {
    use DetectsApplicationNamespace, MakerTrait;

とここまで修正して保存します。

そうして、もう一度
php artisan
と入力するとうまくいくと思います。
ここまで来たら、

php artisan make:scaffold XXXX --schema="title:string:default('XXXX'), body:text"

などと入れて、サイトを作ってください。

こっからが本番ですが、ここで躓いたのでまとめました。

6
5
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
6
5