本稿は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
その後
'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行目
use Illuminate\Console\AppNamespaceDetectorTrait;
↓
use Illuminate\Console\DetectsApplicationNamespace;
###21行目
class ScaffoldMakeCommand extends Command
{
use AppNamespaceDetectorTrait, MakerTrait;
↓
class ScaffoldMakeCommand extends Command
{
use DetectsApplicationNamespace, MakerTrait;
また、最後に追加します。
return $names[$config];
}
public function handle() { return $this->fire(); }
合わせて
###4行目
use Illuminate\Console\AppNamespaceDetectorTrait;
↓
use Illuminate\Console\DetectsApplicationNamespace;
###13行目
class MakeController
{
use AppNamespaceDetectorTrait, MakerTrait;
↓
class MakeController
{
use DetectsApplicationNamespace, MakerTrait;
とここまで修正して保存します。
そうして、もう一度
php artisan
と入力するとうまくいくと思います。
ここまで来たら、
php artisan make:scaffold XXXX --schema="title:string:default('XXXX'), body:text"
などと入れて、サイトを作ってください。
こっからが本番ですが、ここで躓いたのでまとめました。