プロジェクト作成
composer create-project --prefer-dist laravel/laravel プロジェクト名 で作成
SourcetreeやGithubDesktopなどでリポジトリの連携を行っておく
php artisan serve コマンドでサーバ立ち上げ localhost:8000でつなぐ
DB設計
Databaseは手動で作る必要あり Railsのようにrake db:createで作れる下地はない
.envの1ファイルを編集(MySQLの場合の一例)
DB_CONNECTION=mysql
DB_HOST=データベースのホスト名(127.0.0.1)
DB_PORT=ポート番号(3306)
DB_DATABASE=データベース名(プロジェクト名)
DB_USERNAME=データベースのユーザ名(rootなど)
DB_PASSWORD=データベースのパスワード(MySQLのパスワード)
認証機能を使う場合
composerからlaravel/uiを入手
$ composer require laravel/ui
インストール(時間かかる)できたら
$ php artisan ui vue --auth
できたらログの通り npm install && npm run dev をする
npmコマンドはnode.jsのコマンドなので、nodejsが入っていないならnodenv等を使ってnode.jsをインストールする
PATHを通すのを忘れずに。bashファイルにexport (PATH:以降は インストール完了してターミナル上でwhich npm)
source ~/.bashrc やsource ~/.bash_profileをして
コマンド使えるようになったら もう一度npm install && npm run dev
最後に $ php artisan migrate
でユーザーテーブル作成完了
(もし 1071 Specified key was too long; max key length is 767 bytes のエラーが出たら Laravel5.4以上、Mysql5.7.7未満のものを使った場合に起きるものなので
App/Providers/AppServiceProvider.php の26行目に
Schema::defaultStringLength(191); を追記する
一回上でエラー起きてるとすでにテーブルはできてしまっているのでMYSQLから
drop table users; で一旦削除を忘れずにする)
##テーブルの作成
テーブル作成のためのマイグレーションファイルは
php artisan make:migration (ファイル名)となる ファイル名はcreate_○○○s_tableのようにする
また、オプションとして 後ろに—create=テーブル名s をつけるとマイグレーションファイルが
テーブル名を含んだ形で生成される (Schema::create() 以下)
###マイグレーションファイルのカラム設定の一例と自分が引っかかった箇所(外部キー)
$table->text("images")->nullable(); null許可
$table->foreign("user_id")->references('id')->on('users')
外部キー設定 これだけじゃだめ?
↓
$table->integer('user_id')->unsigned();
(unsigned は整数カラムを符合なしの値として扱う これがないとエラー(主キーではデフォルトで適用されている))
$table->foreign("user_id")->references('id')->on('users');
#####一旦普通にカラムを作ってから、外部キーとして設定する記述を行う
↓
さらにハマる 型があってないので上記のカラムを最初に作る箇所で
#####$table->bigInteger('user_id')->unsigned();
に修正してmigrateすると うまくテーブル作成出来ました