laravel 5.2 レイアウトの管理

laravel 5.2 レイアウトの管理

 

確認環境:

laravel 5.2

Windows 10

XAMPP 5.6.30(php 5.6.30)

 

laravel 5.2 でレイアウトの管理方法についてメモしておきます。

 

\resources\views に layout.blade.php ファイルを作成する。

デフォルトで生成されている、welcome.blade.php ファイルをコピーして編集します。

 

\app\Http の routes.php を編集する。

phpMyAdminでデータベースを作る。照合順序は utf8mb4_unicode_ci (多分これでいいはず)

 

ルート にある

.env

ファイルを以下のとおり編集する

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead → 作成したデータベース名
DB_USERNAME=homestead → root
DB_PASSWORD=secret → 空欄

 

追加したら、以下のコマンドを実行して、マイグレートする。

php artisan migrate

 

以下のコマンドを実行して、Post モデルの作成とマイグレートを行う。

php artisan make:model Post -m

 

\app に Post.php

ファイルが生成されていることを確認する。

 

以下のコマンドを実行して、PostsController の作成とマイグレートを行う。

php artisan  make:controller PostsController -m

 

\app\Http\Controllers にPostController.php

が生成されていることを確認する。

\database\migrations に yyyy_mm_dd_xxxxxx_create_posts_table.php

ファイルが生成されていることを確認する。

 

\database\migrations の yyyy_mm_dd_xxxxxx_create_posts_table.php

にフィールドを2つ追加する。

 

\app\Http\Controllers の PostsController.php を編集する。

 

\resources\views\layouts に master.blade.php ファイルを作成する。

 

bootstrap の以下のページからサンプルレイアウトを拝借

https://v4-alpha.getbootstrap.com/examples/

今回は、bootstrap のAlbum テンプレートを使用します。

このページのソースを表示して、まるごとコピーして、

\resources\views に master.blade.php ファイルに貼り付りつけ、以下のように編集します。

ポイントは、

<!– Bootstrap core CSS –>

の箇所を以下のリンク先のコードに差し替えます。

Bootstrap CDN

以下のリンク先のコードをコピーして、
album.css

ローカルの\public にalbum.css ファイルを作成する。

 

\resources\views\layouts に nav.blade.php を新規作成し編集する。

 

\resources\views\layouts に footer.blade.php を新規作成し編集する。

 

\resources\views\posts に index.blade.php を新規作成し編集する。

 

ここで、ブラウザでルートパスにアクセスして表示を確認する。

 

\resources\views\posts に show.blade.php を新規作成し編集する。

 

ここで、ブラウザで/public/posts/1 パスにアクセスして表示を確認する。

 

 

laravel 5.4 コントローラ Controller の追加

laravel 5.4 コントローラ Controller の追加

 

確認環境:

laravel 5.4

Windows 10

XAMPP 5.6.30(php 5.6.30)

laravel 5.4 でコントローラの追加方法についてメモしておきます。

 

これまでは、C:\xampp\htdocs\laraveltest01\routes の web.php から

viewの呼び出し処理を行っていましたが、コントローラを作成してそこからviewの呼び出し処理を行うようにします。

 

今回は、Task モデルの管理を行うコントローラを作成するので、

TasksController という名前を付けます。

一般的にコントローラの名前はs付きで複数形、

モデル名はsなしの単数形で、テーブル名はモデル名にsが付いた複数形となるようです。

 

以下のコマンドを実行します。

php artisan make:controller TasksController

実行すると、

C:\xampp\htdocs\laraveltest01\app\Http\Controllers に

TasksController.php が作成されます。

TasksController.phpを以下のように編集します。

 

C:\xampp\htdocs\laraveltest01\routes の

web.php を以下のように編集します。


http://localhost/laraveltest01/public/tasks

にアクセスして、Task モデルが表示されていることを確認します。

クリックすると、

http://localhost/laraveltest01/public/tasks/[id値] のページが表示され、

選択した id値のbody フィールドの値が表示されます。

 

参考資料:

LARACASTS Laravel 5.4 From Scratch (英語の動画)

 

laravel 5.4 Eloquent モデル

laravel 5.4 Eloquent モデル

 

確認環境:

laravel 5.4

Windows 10

XAMPP 5.6.30(php 5.6.30)

 

laravel 5.4 でEloquent モデルについてメモしておきます。

 

laravel 5.4 データベースの追加

laravel 5.4 データベースとViewの連携
で、データベースを作成したので、その続きで、Eloquent モデルと連携させていきます。

データベース名:laratest01db01

テーブル:

・migrations

・password_resets

・users

・tasks ← このテーブルをいじります。

テーブル tasks は4つのフィールドがあります。

・id
・body
・created_at ← 自動で生成される
・updated_at ← 自動で生成される

 

以下のコマンドを実行します。

php artisan make:model Task

Task Eloquent モデルがされます。

 

C:\xampp\htdocs\laraveltest01\app に

Task.php

が作成されていることを確認。

 

以下のコマンドを実行します。

php artisan tinker

>>> App\Task::all()

実行すると、前回までに作成した tasks テーブルの全ての内容が表示されます。

今回、「Task」モデルを作成したので、他の名前を明示的に指定しない限り、クラス名を複数形(スネークケースにしたもの)「Tasks」が、テーブル名として使用されます。

モデルのtableプロパティを定義し、カスタムテーブル名を指定することもできます。

参考資料:

公式ドキュメンテーション Laravel 5.3 Eloquent:利用の開始

>>> App\Task::where(‘id’, ‘>’, 2)->get();

を実行すると、前回までに作成した tasks テーブルのidが2より大きいレコードが表示されます。

>>> App\Task::pluck(‘body’);

を実行すると、前回までに作成した tasks テーブルのすべてのレコードのbodyフィールドのが表示されます。

 

C:\xampp\htdocs\laraveltest01\routes の web.php を編集します。

web.php


http://localhost/laraveltest01/public/tasks

にアクセスして、Task モデルが表示されていることを確認します。

http://localhost/laraveltest01/public/tasks/[id値]

にアクセスして、選択した id値のbody フィールドの値が表示されていることを確認します。

 

ここで、テーブルに1つフィールドを追加したいので、

テーブルとモデルを削除して、再度作り直します。

php artisan migrate:reset

その後、

C:\xampp\htdocs\laraveltest01\database\migrations の

yyyy_mm_dd_xxxxxx_create_tasks_table.php

C:\xampp\htdocs\laraveltest01\app に

Task.php

を削除し、

composer dump-autoload

して、

php artisan make:model Task -m を実行します。

 

C:\xampp\htdocs\laraveltest01\database\migrations に

yyyy_mm_dd_xxxxxx_create_tasks_table.php

C:\xampp\htdocs\laraveltest01\app に

Task.php

が再度、生成されていることを確認します。

 

C:\xampp\htdocs\laraveltest01\database\migrations の

yyyy_mm_dd_xxxxxx_create_tasks_table.php

を開き、フィールドを1つ追加します。

 

追加したら、データベースをmigrateします。

php artisan migrate

なお、この時、テーブルが存在していると怒られるので、phpMyAdminで tasks テーブルを削除しておきます。

(php artisan migrate:refresh でもいいかも?)

 

tinkerを起動し、以下のコマンドを実行します。

php artisan tinker

>>> $tast = new App\Task;

>>> $tast->body = ‘xxxx’;

>>>$tast->completed = false;

>>> $tast->save(); ← ここでエラーになる場合は、phpMyAdminで手動でテーブルを追加する

 

http://localhost/laraveltest01/public/tasks

にアクセスして、Task モデルが表示されていることを確認します。

 

C:\xampp\htdocs\laraveltest01\app \Task.php を編集します

Task.php


tinkerを起動し、以下のコマンドを実行し動作確認します。

php artisan tinker

>> App\Task::incomplete()->get();

completed フィールドが0のレコードのみが表示されることを確認します。

 

参考資料:

LARACASTS Laravel 5.4 From Scratch(英語の動画)
公式ドキュメンテーション Eloquent:はじめに(英語)
公式ドキュメンテーション Eloquent:Relationships(英語)
公式ドキュメンテーション Eloquent: Collections(英語)
公式ドキュメンテーション Laravel 5.3 Eloquent:利用の開始

 

laravel 5.4 データベースとViewの連携

laravel 5.4 データベースとViewの連携

 

確認環境:

laravel 5.4

Windows 10

XAMPP 5.6.30(php 5.6.30)

 

laravel 5.4 でデータベースとViewの連携の方法についてメモしておきます。

 

laravel 5.4 データベースの追加
で、データベースを作成したので、その続きで、Viewと連携させていきます。

 

データベース名:laratest01db01

テーブル:

・migrations

・password_resets

・users

・tasks ← このテーブルをいじります。

 

テーブル tasks は4つのフィールドがあります。

・id
・body
・created_at ← 自動で生成される
・updated_at ← 自動で生成される

 

phpMyAdmin で テーブル tasks にレコードを追加します。

 

C:\xampp\htdocs\laraveltest01\routes\web.php を編集する

web.php


この状態で http://localhost/laraveltest01/public/test にアクセスすると、

テーブル tasks の生値が確認できます。

 

再び、C:\xampp\htdocs\laraveltest01\routes\web.php を編集する

今度はこんな感じにします。

web.php

 

C:\xampp\htdocs\laraveltest01\resources\views\test.blade.php を編集する
test.blade.php

http://localhost/laraveltest01/public/test にアクセスし、

テーブル tasks のbody フィールドの値が表示されていることを確認します。

 

再び、C:\xampp\htdocs\laraveltest01\routes\web.php を編集する

今度はこんな感じにします。

web.php


C:\xampp\htdocs\laraveltest01\resources\views\tasks

にshow.blade.php とindex.blade.php を新規作成します。

show.blade.php


index.blade.php

http://localhost/laraveltest01/public/tasks にアクセスします。
テーブル tasks の body フィールドの一覧が表示されます。

クリックすると、

http://localhost/laraveltest01/public/tasks/[id値] のページが表示され、

選択した id値のbody フィールドの値が表示されます。

 

参考資料:

LARACASTS Laravel 5.4 From Scratch (英語の動画)

 

laravel 5.4 データベースの追加

laravel 5.4 データベースの追加

確認環境:

laravel 5.4

Windows 10

XAMPP 5.6.30(php 5.6.30)

 

laravel 5.4 でデータベース(mysql)の追加方法についてメモしておきます。

 

laravel 5.4でデータベース(mysql)を作成する方法

1.XAMPPの phpMyAdmin でデータベースを新規作成

データベース名:laratest01db01

照合順序:utf8mb4_unicode_ci (多分これでいいはず)

 

2. C:\xampp\htdocs\laraveltest01 にある

.env

ファイルを以下のとおり編集する

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead → laratest01db01
DB_USERNAME=homestead → root
DB_PASSWORD=secret → 空欄

 

3. 以下のコマンドを実行

php artisan migrate

成功したら、

Migration table created successfully.

と表示される。

 

xampp  5.6.30 だと、php artisan migrate でエラーがでるようなので、

C:\xampp\htdocs\laraveltest01\app\Providers\AppServiceProvider.php

を以下のように(6行目と18行目の箇所)修正する

AppServiceProvider.php

参考資料:[5.4] SQL error when migrating tables #17508

 

4. phpMyAdmin でデータベース laratest01db01 のテーブルを確認

・migrations
・password_resets
・users

の3つのテーブルが作成されていることを確認する。

 

5. 以下のコマンドを実行して、tasks テーブルを追加する。

php artisan make:migration create_tasks_table –create=tasks

 

6.  C:\xampp\htdocs\laraveltest01\database\migrations に

yyyy_mm_dd_xxxxx_create_tasks_table.php

ファイルが作成されていることを確認する

 

7. create_tasks_table.php テーブルを編集する

 

8. 以下のコマンドを実行して、データベースを更新

php artisan migrate

 

9. phpMyAdmin でデータベース laratest01db01 にtasksテーブルが追加され

・id
・body
・created_at
・updated_at

4つフィールドができていることを確認する

 

参考資料:

LARACASTS Laravel 5.4 From Scratch(英語の動画)

 

laravel 5.4 Viewの追加

laravel 5.4 Viewの追加

確認環境:

laravel 5.4

Windows 10

XAMPP 5.6.30(php 5.6.30)

 

laravel 5.4 Viewの追加方法についてメモしておきます。

Laravelを表示してみる

C:\XAMPP\HTDOCS\laraveltest01にLaravel 5.4をインストールしたので、

http://localhost/laraveltest01/public/

にアクセスすると、サイトのトップページが表示されます。

 

 

Viewを追加してみる

1. C:\xampp\htdocs\laraveltest01\routes\web.php を編集

web.php

18-21g行目のコードを追加します。

 

2. C:\xampp\htdocs\laraveltest01\resources\views\welcome.blade.php をコピー

3. C:\xampp\htdocs\laraveltest01\resources\views\about.blade.php を新規作成

2.の welcome.blade.php をコピーして、ファイル名を about.blade.php として、新規作成します。

 

4. C:\xampp\htdocs\laraveltest01\resources\views\about.blade.php を編集

適当に編集します。

 

5. http://localhost/laraveltest01/public/about へアクセス

4.で編集したページが表示されます。

 

なお、

C:\XAMPP\HTDOCS\laraveltest01にLaravel 5.4をインストールしたので、

http://localhost/laraveltest01/public/

にアクセスすると、サイトのトップページが表示されます。

ここに、index.php がありますが、この中身は以下の通りですが、

・Composerで生成されたオートローダー定義をロード

スクリプトからLaravelアプリケーションのインスタンスを取得

をしているだけです。

 

index.php

 

参考資料:

LARACASTS Laravel 5.4 From Scratch(英語の動画)

公式ドキュメンテーション ライフサイクルのリクエスト
公式ドキュメンテーション サービスコンテナ
公式ドキュメンテーション サービスプロバイダ

 

laravel 5.4 を使ってみる

laravel 5.4 を使ってみる

 

確認環境:

laravel 5.4

Windows 10

XAMPP 5.6.30(php 5.6.30)

 

laravel 5.4 を使ってみて、わかったことをメモしておきます。

 

laravel 5.4を使うには

  • PHP> = 5.6.4
  • Composerがインストールされていること

が必要です。

 

localhostにインストールしてみる

laravelのインストール方法は、

コマンドプロンプトでイントールしたいディレクトリに移動して、

以下のコマンドを実行します。

php composer.phar create-project laravel/laravel [プロジェクト名] –prefer-dist

 

バージョンを指定してインストールする場合は、

php composer.phar create-project “laravel/laravel=[バージョン 例)5.2.*]” [プロジェクト名]

 

laravel のバージョンを確認するには、

php artisan –version

 

なお、composerがインストールされている必要があるので、

未インストールの場合は先にインストールしておきます。

インストールは、以下のコマンドを実行します。

php -r “readfile(‘https://getcomposer.org/installer’);” | php

 

実行すると、composer.phar ファイルができます。

php composer.phar -v でcomposer のバージョンが確認できます。

 

C:\XAMPP\HTDOCS\LARAVELTEST01にLaravel 5.4をインストールしました。

フォルダ、ファイル構成は以下の通りです。

(コマンドプロンプトで tree /f [ツリー出力したいパス] > xxx.txt でツリーをテキストに落とせます。)

 

C:\XAMPP\HTDOCS\laraveltest01
│ .env
│ .env.example
│ .gitattributes
│ .gitignore
│ artisan
│ composer.json
│ composer.lock
│ laraveltree.txt
│ package.json
│ phpunit.xml
│ readme.md
│ server.php
│ webpack.mix.js

├─app
│ │ User.php
│ │
│ ├─Console
│ │ Kernel.php
│ │
│ ├─Exceptions
│ │ Handler.php
│ │
│ ├─Http
│ │ │ Kernel.php
│ │ │
│ │ ├─Controllers
│ │ │ │ Controller.php
│ │ │ │
│ │ │ └─Auth
│ │ │ ForgotPasswordController.php
│ │ │ LoginController.php
│ │ │ RegisterController.php
│ │ │ ResetPasswordController.php
│ │ │
│ │ └─Middleware
│ │ EncryptCookies.php
│ │ RedirectIfAuthenticated.php
│ │ TrimStrings.php
│ │ VerifyCsrfToken.php
│ │
│ └─Providers
│ AppServiceProvider.php
│ AuthServiceProvider.php
│ BroadcastServiceProvider.php
│ EventServiceProvider.php
│ RouteServiceProvider.php

├─bootstrap
│ │ app.php
│ │ autoload.php
│ │
│ └─cache
│ .gitignore
│ services.php

├─config
│ app.php
│ auth.php
│ broadcasting.php
│ cache.php
│ database.php
│ filesystems.php
│ mail.php
│ queue.php
│ services.php
│ session.php
│ view.php

├─database
│ │ .gitignore
│ │
│ ├─factories
│ │ ModelFactory.php
│ │
│ ├─migrations
│ │ 2014_10_12_000000_create_users_table.php
│ │ 2014_10_12_100000_create_password_resets_table.php
│ │
│ └─seeds
│ DatabaseSeeder.php

├─public
│ │ .htaccess
│ │ favicon.ico
│ │ index.php
│ │ robots.txt
│ │ web.config
│ │
│ ├─css
│ │ app.css
│ │
│ └─js
│ app.js

├─resources
│ ├─assets
│ │ ├─js
│ │ │ │ app.js
│ │ │ │ bootstrap.js
│ │ │ │
│ │ │ └─components
│ │ │ Example.vue
│ │ │
│ │ └─sass
│ │ app.scss
│ │ _variables.scss
│ │
│ ├─lang
│ │ └─en
│ │ auth.php
│ │ pagination.php
│ │ passwords.php
│ │ validation.php
│ │
│ └─views
│ welcome.blade.php

├─routes
│ api.php
│ channels.php
│ console.php
│ web.php

├─storage
│ ├─app
│ │ │ .gitignore
│ │ │
│ │ └─public
│ │ .gitignore
│ │
│ ├─framework
│ │ │ .gitignore
│ │ │
│ │ ├─cache
│ │ │ .gitignore
│ │ │
│ │ ├─sessions
│ │ │ .gitignore
│ │ │ 8SfGt2P1PL1jhbDMLcmcoAQVb8Q6YxMMqo691FfV
│ │ │ RIsyLDtbLqwlHi9cljIz0Unk0yaUiAZ89XmtO8MO
│ │ │
│ │ ├─testing
│ │ │ .gitignore
│ │ │
│ │ └─views
│ │ .gitignore
│ │ 2c37ceba00ba14f0254de15943fb3681d6469a1f.php
│ │
│ └─logs
│ .gitignore

├─tests
│ │ CreatesApplication.php
│ │ TestCase.php
│ │
│ ├─Feature
│ │ ExampleTest.php
│ │
│ └─Unit
│ ExampleTest.php

└─vendor (comporserのファイル)

 

Laravelを表示してみる

C:\XAMPP\HTDOCS\laraveltest01にLaravel 5.4をインストールしたので、

Laravelを表示するには、

http://localhost/laraveltest01/public/

にアクセスします。

すると、こんな画面が表示されます。

DOCUMENTATION の箇所をクリックすると、公式ドキュメントサイト(英語)にアクセスします。

GITHUB の箇所をクリックすると、GITHUBで公開されている公式ソースを見ることができます。

 

 

GitHub 使い方 ブランチについて

GitHub 使い方 ブランチについて

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubのブランチについてメモしておきます。

 

ブランチ操作

git branch:ローカルリポジトリに存在するブランチの一覧を表示

先頭に*(アスタリスク)が付いているのが、現在のブランチ

git branch [ブランチ名]:ブランチを作成する

git checkout [ブランチ名]:ブランチを切り替える

git checkout -b [ブランチ名]:ブランチの作成とブランチの切り替えをいっぺんにやる

git push origin [ブランチ名]:ローカルのブランチをリモートへ反映する

git merge [ブランチ名]:ブランチをマージする

マージの前に、git checkout [ブランチ名]でマージしたいブランチに移動してから実行すること

git branch -d [ブランチ名]:ローカルブランチを削除する

 

git branch –remote:リモートリポジトリに存在するブランチの一覧を表示

git branch –all:ローカルとリモートリポジトリに存在する全てのブランチの一覧を表示

git push –delete origin [ブランチ名]:リモートブランチを削除する

 

GitHub 使い方 コミットの取り消しについて

GitHub 使い方 コミットの取り消しについて

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubで最もよく使うコミットの取り消しについてメモしておきます。

 

HEADについて

HEADとは、現在使用しているブランチの一番先頭をあらわす。

~(チルダー):HEADから何世代前かを指定する

^(キャレット):ブランチが複数ある場合、何番目の親かを指定する

 

指定例:

・HEAD~1:HEADから1世代前を指定

・HEAD~3:HEADから3世代前を指定

・HEAD~1^2:ブランチ2のHEADから1世代前を指定

 

コミットの履歴を表示する

コミットの履歴を表示するには git log

 

コミットを取り消しのバリエーション

・git revert:コミットを指定の時点の状態まで戻すに

(指定の時点に遡り、その状態が新たに追加コミットされる)

指定例:

git revert HEAD~1:直前のコミット(1世代前)の状態まで戻す

git revert HEAD~2:2世代前の状態まで戻す

 

・git reset –hard:コミットを取り消す(消去)

(指定の時点のコミットが消去される)

指定例:

git reset –hard HEAD~1:直前のコミット(1世代前)を取り消す(消去)

git reset –hard HEAD~2:2世代前を取り消す(消去)

 

・git reset –soft:コミットの履歴のみを取り消す(消去)

(履歴は消去されますが、ローカルリポジトリの内容は消去されない点に注意)

指定例:

 

・git rebase -i:pushした後、リモートリポジトリのコミットを取り消す(消去)

このコマンドを実行すると、エディタが開きます。

内容は以下のような内容です。

このエディタの1行目の先頭の「pick」の文字を「drop」に書き換えて保存し終了します。

この後、コマンドプロンプトで

「Successfully rebased and updated refs/heads/master.」

と表示されることを確認します。

この後、git push -f origin master でリモートリポジトリを強制的に書き換えします。

(git push origin master はエラーになります。)

指定例:

git rebase -i HEAD~1:直前のリモートリポジトリのコミットを(1世代前)を取り消す(消去)

git revert HEAD~2:2世代前のリモートリポジトリのコミットを取り消す(消去)

 

・git commit –amend:直前のコミットに上書きする

 

 

GitHub 使い方 競合について

GitHub 使い方 競合(conflict) について

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubの競合(conflict)についてメモしておきます。

 

GitHubにすでにリモートリポジトリがある状態で

リモートリポジトリをクローンするには git clone [リモートリポジトリのパス]

リモートリポジトリをプルするには git pull origin master

(プル pull = fetch + marge)

 

リモートリポジトリの競合について

1.AさんがファイルXを1という内容に編集しCommit

2.BさんがファイルXを2という内容に編集しCommit

3.Aさんが ファイルX1をリモートリポジトリに push

4.Bさんが ファイルX2をリモートリポジトリに pushしようとするとエラー(競合が発生)

5.Bさんは git pull する。

(ここで1.のAさんのコミット内容X1と2.のBさんのコミット内容X2がマージされる)

6.Bさんは git add . する。

7.Bさんは git commit する。X1 + 2

8.Bさんは git push する。(push成功)

この時のリモートリポジトリの履歴は、

1.のAさんのコミット内容X1

2.のBさんのコミット内容X2

7.のBさんのコミット内容X1 +2(1.と2.のマージ結果)が表示されます。

 

コミットの履歴を表示する

コミットの履歴を表示するには git log