+ All Categories
Home > Documents > Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40...

Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40...

Date post: 05-Aug-2020
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
216
Laravel #laravel
Transcript
Page 1: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Laravel

#laravel

Page 2: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

1

1: Laravel 2

2

Laravel StackOverflow Slack 2

2

2

2

Laravel 2

2

MVC 2

2

3

3

Eloquent ORM 3

3

3

Examples 4

Laravel 4

4

4

4

2: AJAX 6

6

Examples 6

6

6

6

Ajax_token 7

3: Cron 8

8

Examples 8

Page 3: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Cron 8

4: Eloquent 9

9

9

Examples 9

9

10

10

11

12

13

404 14

14

5: Eloquent Relationship 15

15

Examples 15

hasMany1 15

6: Eloquent 16

16

16

Examples 16

16

16

16

7: Eloquent 18

Examples 18

18

18

19

19

21

8: Eloquent 22

Page 4: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Examples 22

22

22

23

23

1 23

11 24

2 UserPhone 24

25

25

26

27

9: Eloquent 31

10: HTML 32

Examples 32

32

11: Laravel 5.2.31 + 33

33

33

33

Examples 33

api-routesWeb 33

12: Laravel 5.4Sparkpost 35

35

Examples 35

.env 35

13: laravel-5.2 36

36

36

Examples 36

36

Page 5: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Ubuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36

14: laravel-5.3 40

40

Examples 40

$ loop 40

15: laravel-5.3 41

41

Examples 41

Laravel 41

Laravel 41

Composer Create-Project 42

42

42

43

Hello World 43

Hello World 44

pretty URLWeb 44

16: LaravelDB 46

Examples 46

46

46

DB 47

Eloquent 47

Laravel 47

17: LaravelCustomException 49

49

Examples 49

laravelCustomException 49

18: laravelURL 50

50

Examples 50

50

Page 6: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

URL 50

19: LinuxLaravel 5 51

51

Examples 51

LinuxLaravel 5 51

20: WindowsLaravel 54

54

Examples 54

54

21: 56

Examples 56

56

22: 58

Examples 58

58

58

Laravel 58

59

59

60

Hello World 61

Hello World 62

LaraDockLaravel Homestead for Docker 62

63

63

23: 65

65

Examples 65

65

Hello World 66

Hello World 66

Page 7: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

66

66

67

24: 68

68

Examples 68

68

ModelNotFoundException 69

25: 70

70

70

Examples 70

document.php 70

HelpersServiceProvider.php 70

71

26: 72

72

Examples 72

72

72

sync 72

database 72

sqs 72

iron 73

redis 73

beanstalkd 73

null 73

27: 74

Examples 74

74

CorsHeaders 74

28: 76

Page 8: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

76

76

Examples 76

76

76

76

77

Get 77

Contains 78

Pluck 78

Map 78

79

79

79

80

SortByDesc 80

reduce 81

82

82

29: 84

84

Examples 84

84

84

85

85

87

30: 88

Examples 88

88

31: 93

Page 9: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Examples 93

93

93

93

94

94

32: 95

95

Examples 95

95

DB 95

95

create 95

96

96

96

96

97

33: 99

99

Examples 99

99

34: 100

Examples 100

100

101

102

103

35: 104

Examples 104

104

104

Page 10: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

104

105

Controllers 105

36: 106

Examples 106

106

37: 110

Examples 110

110

110

110

111

MySQL 111

fakerModelFactories 112

38: 115

Examples 115

115

116

116

117

117

118

39: 120

Examples 120

120

120

121

121

122

40: 123

123

123

Page 11: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

123

123

Examples 123

123

124

124

124

125

Linux 125

41: / 127

Examples 127

127

127

129

SSHWeb 130

42: 131

131

131

131

Examples 131

131

131

132

43: 134

134

Examples 134

134

135

135

'If' 135

135

135

Page 12: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

'While' 136

'Foreach' 136

Forelse 136

PHP 137

137

137

137

137

138

138

138

139

140

View :: share 140

View :: composer 141

141

141

PHP 142

44: 143

Examples 143

Laravel 143

144

45: 145

145

Examples 145

145

String 145

mehods 145

URL 146

46: 147

Examples 147

Page 13: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

147

47: 148

148

148

Examples 148

148

149

149

48: 151

151

Examples 151

TokenMisMatch 151

49: 152

Examples 152

laravel-ide-helper 152

laravel-datatables 152

152

152

152

152

152

153

153

153

153

50: 154

154

Examples 154

154

51: 155

Examples 155

155

Page 14: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

52: 156

Examples 156

HTTP 156

156

53: 158

Examples 158

158

158

158

159

159

URL 159

160

160

160

160

160

161

161

161

54: 163

Examples 163

163

163

55: 165

Examples 165

165

56: 166

166

Examples 166

166

Page 15: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

57: 168

Examples 168

168

58: 169

169

Examples 169

169

169

169

59: 170

170

Examples 170

170

170

171

171

171

60: 173

173

Examples 174

174

175

175

POSTPUTPATCH 178

179

179

Request 179

180

180

61: 182

Examples 182

182

Page 16: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

182

- 182

- 183

API - 183

62: 184

184

184

Examples 186

186

186

PHPLaravel Artisan 187

187

63: 189

Examples 189

189

64: 191

Examples 191

191

65: 195

Examples 195

195

196

Page 17: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: laravel

It is an unofficial and free Laravel ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official Laravel.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/ja/home 1

Page 18: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

1: Laravelをいめる

Laravel StackOverflow Slackコミュニティ

おすすめのチュートリアルLaravel

ガイドライン

スタイルガイド

LaravelについてのオープンソースのPHP WebフレームワークとしてTaylor OtwellによってされたLaravelは、Web

アプリケーションのプロセスをにし、することをとしています。

モデルビューコントローラ MVC アーキテクチャーパターン、 PSR-2コーディング、 PSR-4オートロードにしています。

LaravelでTest Driven Development TDD をするのはしく、がです。

GitHubでホストされ 、 https://github.com/laravel/laravelでなLaravelは、 マイクロサービスアーキテクチャをっており、カスタムメイドやのサードパーティのアプリケーションをすることでにできますパッケージ。

MVC

LaravelはMVCモデルをしているため、フレームワークの3つのコア、つまりモデル、ビュー、コントローラがにします。コントローラは、ほとんどのがわれるなです。モデルにしてデータを、、し、アプリケーションののHTMLをむビューにをします。

ブレードテンプレートエンジン

LaravelにはBladeというテンプレートエンジンがしています。ブレードはにいやすいですが、です。 Bladeのテンプレートエンジンがのなものとしていないの1つは、のです。ブレードテンプレ

https://riptutorial.com/ja/home 2

Page 19: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ートエンジンファイルでプレーンなPHPコードをすることができます。

Bladeのテンプレートエンジンファイルには、のファイルのの.phpに.bladeというファイルがされていることにすることがです。そのため、 .blade.phpはBladeテンプレートファイルのファイルです。ブレードテンプレートエンジンファイルは、resources / viewsディレクトリにされます。

ルーティングミドルウェア

ルートのけをりてアプリケーションのURLをすることができます。これらのルートは、データをむことも、コントローラにすることも、ミドルウェアにラップすることもできます。 Middelware

は、HTTPをフィルタリングするためのメカニズムです。それらは、コントローラにするにとするためにされ、をまたはできます。

Artisanは、Laravelのをするためにできるコマンドラインツールです。になモデル、コントローラ、そののリソースをするためのコマンドがされています。 Artisanコマンドラインツールをするのコマンドをすることもできます。

Eloquent ORM

モデルをさまざまなタイプのデータベースにするために、LaravelはのORMをしています。また、フレームワークはとシードをし、ロールバックもえています。

イベント

このフレームワークは、アプリケーションのイベントをすることができます。 NodeJsのものにたイベントリスナーとイベントハンドラをできます。

バージョン

バージョン

1.0 20110609

2.0 2011-11-24

3.0 2012-02-22

3.1 2012-03-27

3.2 2012-05-22

4.0 2013-05-28

4.1 2013-12-12

4.2 2014-06-01

https://riptutorial.com/ja/home 3

Page 20: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

バージョン

5.0 2015-02-04

5.1 LTS 2015-06-09

5.2 2015-12-21

5.3 2016-08-24

5.4 2017-01-24

Examples

Laravelタグのドキュメントへようこそ

LaravelはよくられたPHPフレームワークです。ここでは、Laravelについてすべてをびます。オブジェクトプログラミングがであるかをることから、なLaravelパッケージのトピックにるまで、なものからめましょう。

のすべてのStackoverflowドキュメントタグと、これはコミュニティのドキュメントなので、にLaravelにするがあるは、のトピックやをしてをしてくださいのについては、このトピックのコメントにするスタイルのガイドと、Laravelについてびたいにのをできるようにするためにしたスタイルガイドをすることをれないでください。

それに、たちはあなたがてくれてとてもしくいます。

スターターガイド

ガイドは、にのためにトピックをにするためにたちがしたカスタムナビゲーションです。このナビゲーションはにべられています。

インストール

ラーヴェル・ビュー

ブレードはじめに

ブレードと

または

ここからのインストール

ここからをしてインストールする1.

https://riptutorial.com/ja/home 4

Page 21: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

WAMPををし、ここで 、それをインストールし、PHPのをします2.

wwwとtypeコマンドのパスをする3.

composer create-project --prefer-dist laravel/laravel projectname

のLaravelバージョンをインストールするには、 wwwへのパスをし、コマンドをしてください

composer create-project --prefer-dist laravel/laravel=DESIRED_VERSION projectname

または

Laravelインストーラで

まず、ComposerをしてLaravelインストーラをダウンロードします。

composer global require "laravel/installer"

$ PATHに$HOME/.composer/vendor/binディレクトリまたはOSののディレクトリをして、システムによってlaravelファイルをlaravelことができるようにしてください。

laravel newコマンドをインストールすると、したディレクトリにしいLaravelインストールがされます。たとえば、 laravel new blogは、Laravelのがすべてインストールされたlaravel new blog

Laravelインストールをむblogというディレクトリがされます。

laravel new blog

オンラインでLaravelをいめるをむ https://riptutorial.com/ja/laravel/topic/794/laravelをいめる

https://riptutorial.com/ja/home 5

Page 22: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

2: AJAXのトークンのエラー

はTokenMismatchエラーをするがにいことをしました。そして、このエラーは、いくつかのかないのためにします。がいをしているはたくさんあります。ヘッダーにNo _token、Ajaxをしているときに_ _tokenがされたデータがありません。ストレージパスにアクセスのがあり、セッションストレージパスがです。

Examples

ヘッダーのセットアップトークン

default.blade.php <head>にトークンをします。

<meta name="csrf-token" content="{{csrf_token()}}">

スクリプトのにajaxSetupをします。これはどこからでもアクセスです。これは、ajaxびしでヘッダーをします

$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });

トークンをオンにするタグ

のを<form>タグにしてください。このは_tokenというのしフィールドをし、トークンにをめみます。

{{csrf_field()}}

valueのし_tokenにcsrf_token ()をします。これは、されたのみをします。

<input type="hidden" name="_token" value="{{csrf_token()}}"/>

セッションストレージパスとをする

ここでは、プロジェクトのアプリケーションのURLは、 APP_URL=http://project.dev/ts/toys-store

きみなパーミッションをフォルダのstorage_path('framework/sessions')します。1. あなたのlaravelプロジェクト'path' => '/ts/toys-store',をしてください。2.

https://riptutorial.com/ja/home 6

Page 23: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

あなたのクッキー'cookie' => 'toys-store',をする'cookie' => 'toys-store',3.

return [ 'driver' => env('SESSION_DRIVER', 'file'), 'lifetime' => 120, 'expire_on_close' => false, 'encrypt' => false, 'files' => storage_path('framework/sessions'), 'connection' => null, 'table' => 'sessions', 'lottery' => [2, 100], 'cookie' => 'toys-store', 'path' => '/ts/toys-store', 'domain' => null, 'secure' => false, 'http_only' => true, ];

Ajaxで_tokenフィールドをする

AJAXびしで_tokenをするはたくさんあります

var formData = new FormData($("#cart-add")[0]);をして、 <form>タグのすべてのフィールドのをしますvar formData = new FormData($("#cart-add")[0]);

1.

$("form").serialize();してください$("form").serialize();または$("form").serializeArray();2. Ajaxのdataに_tokenでする。 $('meta[name="csrf-token"]').attr('content')または$('input[name="_token"]').val()

3.

のコードのようなのAjaxびしでヘッダーとしてできます。4.

$.ajax({ url: $("#category-add").attr("action"), type: "POST", data: formData, processData: false, contentType: false, dataType: "json", headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });

オンラインでAJAXのトークンのエラーをむ https://riptutorial.com/ja/laravel/topic/10656/ajaxのトークンのエラー

https://riptutorial.com/ja/home 7

Page 24: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

3: Cronの

Cronはのでスケジュールされたタスクをするタスクスケジューラーデーモンです。 Cronはcrontabとばれるファイルをして、スケジューリング・プロセスをします。

Examples

Cronジョブをする

Crontabには、のタスクにするcronジョブがまれています。 Cronジョブは、cronとシェルコマンドの2つのでされています。

* * * * *コマンド/ to / run

のフィールド* * * * *は、スケジュールのをするためのオプションです。これは、に、、、、でされています。アスタリスクは、それぞれのフィールドでなすべてのをします。その、のcronジョブはされます。

のcronジョブは12:30にされます。

30 12 * * *コマンド/ to / run

オンラインでCronのをむ https://riptutorial.com/ja/laravel/topic/9891/cronの

https://riptutorial.com/ja/home 8

Page 25: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

4: Eloquent

Eloquentは、LaravelにまれるORMオブジェクトリレーショナルモデルです。これは、アクティブなレコードパターンをし、リレーショナルデータベースとするためにされます。

テーブルの

では、テーブルにの "snake_case"を、モデルにの "StudlyCase"をします。えば

catsテーブルにはCatモデルがあります•jungle_catsテーブルにはJungleCatモデルがあります•usersテーブルにはUserモデルがありUser•peopleテーブルにはPersonモデルがあります•

Eloquentは、のように、モデルののをつテーブルでモデルをにバインドしようとします。

ただし、のをすると、デフォルトのをできます。

class User extends Model { protected $table = 'customers'; }

Examples

Eloquentは、LaravelフレームワークにみまれたORMです。これにより、 ActiveRecordパターンをして、オブジェクトのでデータベーステーブルとすることができます。

のモデルクラスは、、のデータベーステーブルにマッピングし、また、なるタイプの 、 、 、は、なるモデル・クラスとのにすることができます。

モデルセクションでは、モデルクラスのとについてします。

Eloquentモデルをするに、なくとも1つのデータベースがconfig/database.phpファイルにされていることをしてください。

のなクエリービルダーのいをするには、 php artisan ide-helper:generateコマンドをします。ここにリンクがあります。

https://riptutorial.com/ja/home 9

Page 26: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

サブトピックナビゲーション

ゆるやかな

する

Eloquentでデータをみるだけでなく、 save()メソッドをしてデータをまたはすることもできます。しいモデルインスタンスをしたは、レコードがされます。それのは、データベースからモデルをしてしいをすると、モデルがされます。

このでは、しいUserレコードをしUser 。

$user = new User(); $user->first_name = 'John'; $user->last_name = 'Doe'; $user->email = '[email protected]'; $user->password = bcrypt('my_password'); $user->save();

また、 createメソッドをして、データのをしてフィールドにデータをすることもできます。

User::create([ 'first_name'=> 'John', 'last_name' => 'Doe', 'email' => '[email protected]', 'password' => bcrypt('changeme'), ]);

createメソッドをする、はモデルのfillableでするがあります。

class User extends Model { protected $fillable = [ 'first_name', 'last_name', 'email', 'password', ]; }

あるいは、すべてのをにりてることができるようにするには、$ guardedプロパティをのとしてします。

class User extends Model { /** * The attributes that aren't mass assignable. * * @var array */ protected $guarded = [];

https://riptutorial.com/ja/home 10

Page 27: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

}

しかし、あなたはまたしてもせずにレコードをすることができますfillableして、モデルのforceCreateをではなく、 createを

User::forceCreate([ 'first_name'=> 'John', 'last_name' => 'Doe', 'email' => '[email protected]', 'password' => bcrypt('changeme'), ]);

は、のUserモデルをにみみ findをしfind 、してすることによって、のUserモデルをするです。

$user = User::find(1); $user->password = bcrypt('my_new_password'); $user->save();

のびしでじフィートをするには、 updateメソッドをうことができます

$user->update([ 'password' => bcrypt('my_new_password'), ]);

createメソッドとupdateメソッドをcreateと、のにすように、キーとのペアをにするがなく、のデータをするのがはるかにになります。

にしてくださいonlyとexceptデータをするときに。/するキーをにすることはです。そうしないと、がリクエストでのフィールドをし、しないをきこすがあります。

// Updating a user from specific request data $data = Request::only(['first_name', 'email']); $user->find(1); $user->update($data); // Create a user from specific request data $data = Request::except(['_token', 'profile_picture', 'profile_name']); $user->create($data);

データはデータベースにきんだにできます。モデルインスタンスをしたはモデルインスタンスをするか、するレコードのをできます。

モデルインスタンスをするには、モデルインスタンスをしてdelete()メソッドをびします。

$user = User::find(1); $user->delete();

または、 destroy()メソッドをして、するレコードのキーまたはキーのをすることもできます。

User::destroy(1);

https://riptutorial.com/ja/home 11

Page 28: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

User::destroy([1, 2, 3]);

クエリとをみわせてすることもできます。

User::where('age', '<', 21)->delete();

これにより、にするすべてのユーザーがされます。

Eloquentをしてステートメントをdeletingと、 deletedモデルイベントは、されたモデルにしてされません。これは、deleteステートメントのにモデルがにはされないためです。

ソフト

レコードをにするのではなく、やレポートのためにレコードをしたいがあります。このため、Eloquentはソフトをします。

ソフトをモデルにするには、 SoftDeletesをインポートしてEloquentモデルクラスにするがあります。

namespace Illuminate\Database\Eloquent\Model; namespace Illuminate\Database\Eloquent\SoftDeletes; class User extends Model { use SoftDeletes; }

モデルをすると、モデルのテーブルのdeleted_atタイムスタンプにタイムスタンプがされるので、 deleted_atテーブルにdeleted_atカラムをしてください。また、には、にsoftDeletes()メソッドをびして、 deleted_atタイムスタンプをするdeleted_atます。

Schema::table('users', function ($table) { $table->softDeletes(); });

どのクエリでもソフトされたレコードはされます。 withTrashed()スコープをしてにすることができます

User::withTrashed()->get();

ソフトつまりゴミタイプのしたにユーザーがレコードをできるようにするには、 restore()メソッドをします。

$user = User::find(1); $user->delete(); $user->restore();

https://riptutorial.com/ja/home 12

Page 29: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

にレコードをするには、 forceDelete()にデータベースからレコードをするforceDelete()メソッドをします。

$user = User::find(1); $user->forceDelete();

キーとタイムスタンプの

デフォルトでは、Eloquentモデルはキーのが'id'ことをしています。そうでないは、 $primaryKeyプロパティーをして、キーのをすることができます。

class Citizen extends Model { protected $primaryKey = 'socialSecurityNo'; // ... }

、キー findやfindOrFail をするEloquentメソッドは、このしいをします。

さらに、Eloquentはプライマリキーがインクリメントであることをしています。キーがインクリメントGUIDなどでないは、 $incrementingプロパティをfalseしてEloquentにするがありfalse 。

class Citizen extends Model { protected $primaryKey = 'socialSecurityNo'; public $incrementing = false; // ... }

デフォルトでは、Eloquentはcreated_atとupdated_atがテーブルにするとしています。これらのがEloquentによってにされないようにするには、モデルの$timestampsプロパティーをfalseにします。

class Citizen extends Model { public $timestamps = false; // ... }

タイムスタンプのにするのをカスタマイズするがあるは、モデルでCREATED_ATとUPDATED_ATをできます。

class Citizen extends Model { const CREATED_AT = 'date_of_creation'; const UPDATED_AT = 'date_of_last_update';

https://riptutorial.com/ja/home 13

Page 30: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

// ... }

エンティティがつからないは404をげる

モーダルにつからないレコードをするときにをにスローするには、

Vehicle::findOrFail(1);

または

Vehicle::where('make', 'ford')->firstOrFail();

キーが1レコードがつからないModelNotFoundExceptionは、 ModelNotFoundExceptionがスローされます。にはいているものとじです ソースをる

$vehicle = Vehicle::find($id); if (!$vehicle) { abort(404); }

モデルのクローン

をするがあるかもしれませんが、いくつかのをするかもしれませんが、DRYをするながです。 Laravelはこのをするためのの「れた」をします。にされていませんが、APIをするがあります。

$model->replicate()うとにレコードをできます

$robot = Robot::find(1); $cloneRobot = $robot->replicate(); // You can add custom attributes here, for example he may want to evolve with an extra arm! $cloneRobot->arms += 1; $cloneRobot->save();

のでは、IDが1のロボットをつけてクローンします。

オンラインでEloquentをむ https://riptutorial.com/ja/laravel/topic/865/eloquent

https://riptutorial.com/ja/home 14

Page 31: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

5: Eloquent Relationshipのマクロ

Laravelバージョン5.4.8のEloquent Relationshipのがあります。たちはhasManyそれはなるですののインスタンスをフェッチすることができます。これは、それをですることで、すべての

Examples

hasManyの1つのインスタンスをできます

たちのAppServiceProvider.php

public function boot() { HasMany::macro('toHasOne', function() { return new HasOne( $this->query, $this->parent, $this->foreignKey, $this->localKey ); }); }

たちはショップモーダルをっており、したのリストをしているとします。 ShopモーダルのAllPurchasedリレーションシップがあるとします

public function allPurchased() { return $this->hasMany(Purchased::class); } public function lastPurchased() { return $this->allPurchased()->latest()->toHasOne(); }

オンラインでEloquent Relationshipのマクロをむ

https://riptutorial.com/ja/laravel/topic/8998/eloquent-relationshipのマクロ

https://riptutorial.com/ja/home 15

Page 32: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

6: Eloquentアクセッサミューテータ

アクセサーとミューテータをすると、モデルインスタンスでEloquentをまたはするときに、Eloquentをできます。たとえば、Laravelツールをしてがデータベースにされているにし、Eloquentモデルでアクセスするときにそのをにすることができます。カスタムアクセサやミューテータにえて、EloquentはにフィールドをCarbonインスタンスにキャストしたり、テキストフィールドをJSONにキャストすることもできます。

set {ATTRIBUTE}$//ラクダの•

Examples

アクセサの

<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * Get the user's first name. * * @param string $value * @return string */ public function getFirstNameAttribute($value) { return ucfirst($value); } }

アクセサリーのごのように、カラムののがアクセサにされ、をしてすことができます。アクセサーのにアクセスするには、モデルインスタンスのfirst_nameにアクセスします。

$user = App\User::find(1); $firstName = $user->first_name;

ミューテータの

https://riptutorial.com/ja/home 16

Page 33: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

class User extends Model { public function setPasswordAttribute($password) { $this->attributes['password'] = bcrypt($password); } ... }

のコードは、パスワードプロパティがされるたびに「bcrypting」します。

$user = $users->first(); $user->password = 'white rabbit'; //laravel calls mutator on background $user->save(); // password is bcrypted and one does not need to call bcrypt('white rabbit')

オンラインでEloquentアクセッサミューテータをむ

https://riptutorial.com/ja/laravel/topic/8305/eloquent-アクセッサ-ミューテータ

https://riptutorial.com/ja/home 17

Page 34: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

7: Eloquentモデル

Examples

モデルをる

モデル

モデルクラスは、 Illuminate\Database\Eloquent\Modelするがあります。モデルのデフォルトのは/appディレクトリです。

Artisanコマンドをすると、モデルクラスをにできます。

php artisan make:model [ModelName]

これはデフォルトでapp/しいPHPファイルをします。これは[ModelName].phpというで、しいモデルのをすべてみます。クラス、、およびになusingをみます。

モデルとにファイルをするは、のコマンドをします。- -mはファイルもします。

php artisan make:model [ModelName] -m

モデルのにえて、モデルにされたデータベースがされます。データベースPHPファイルは、デフォルトでdatabase/migrations/ます。デフォルトでは、idおよびcreated_at / updated_atカラムのものはまれないため、のカラムをするためにファイルをするがあります。

プロジェクトルートからphp artisan migrateをして、モデルをさせるためには、マイグレーションをするがありますマイグレーションファイルをしたら。

また、でモデルをしたにマイグレーションをするは、のコマンドをしてマイグレーションをすることができます。

php artisan make:migration [migration name]

たとえば、Catsのモデルをしたいとします。これは2つのがあり、のにかかわらずすることができます。にcatsテーブルをっていたや、でcatsテーブルをしたくないは、せずにすることをしました。

このでは、まだテーブルをっていないので、のコマンドをするので、をします。

php artisan make:model Cat -m

このコマンドは2つのファイルをします

https://riptutorial.com/ja/home 18

Page 35: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Appフォルダ app/Cat.php1.

データベースフォルダ database/migrations/timestamp_creat_cats_table.php2.

たちがをっているファイルは、このファイルのようにです。たちは、テーブルをどのようにせたいかをめることができます。みのマイグレーションのは、IDとタイムスタンプがえられます。

のファイルのには、のみのだけでなく、の、、のがまれます。

public function up() { Schema::create('cats', function (Blueprint $table) { $table->increments('id'); //Predefined ID $table->string('name'); //Name $table->integer('age'); //Age $table->string('colour'); //Colour $table->timestamps(); //Predefined Timestamps }); }

つまり、のモデルとをするのはです。に、マイグレーションをしてデータベースでするには、のコマンドをします。

php artisan migrate

のがデータベースにされます。

モデルファイルの

モデルはPSR4のおかげでどこにでもできます。

デフォルトでは、モデルはappディレクトリにAppのとともにされます。よりなアプリケーションの、、アプリケーションアーキテクチャにったでモデルをのフォルダにすることをおめします。

たとえば、のをモデルとしてするアプリケーションがある、 app/Fruitsというのフォルダをし、このフォルダにBanana.php StudlyCaseををすると、BananaクラスをできますApp\Fruitsネームスペースで

namespace App\Fruits; use Illuminate\Database\Eloquent\Model; class Banana extends Model { // Implementation of "Banana" omitted }

モデル

https://riptutorial.com/ja/home 19

Page 36: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Eloquentは、「の」アプローチにいます。Modelクラスをすると、すべてのモデルがにすプロパティをします。きされないり、のデフォルトがされます。

プロパティ デフォルト

protected $connection DB デフォルトのDB

protected $table テーブル

デフォルトでは、クラスはsnake_caseされ、されます。えば、 SpecialPersonなりspecial_people

protected $primaryKey テーブルPK id

public $incrementing

IDがインクリメントされているかどうかをします。

true

public $timestamps

モデルにタイムスタンプをけるがあるかどうかをします。

true

const CREATED_AT タイムスタンプの created_at

const UPDATED_AT タイムスタンプの updated_at

protected $dates

timestampsにえて、DateTimeにするがある

[]

protected $dateFormat がされる のSQLダイアレクトのデフォルト。

protected $with モデルによるeagerloadとの []

protected $hidden

モデルのシリアライゼーションでがされています

[]

protected $visible モデルのでされる []

protected $appends

モデルのシリアライズにされたアクセサ

[]

protected $fillable りてな []

protected $guarded

りてからブラックリストにされている

[*] すべての

protected $touches にれるべき []

https://riptutorial.com/ja/home 20

Page 37: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

プロパティ デフォルト

protected $perPage

ページのためにすモデルの。

15

5.0

プロパティ デフォルト

protected $casts ネイティブにキャストするがある []

のモデルをする

$user = User::find(1); $user->name = 'abc'; $user->save();

また、でsaveをsaveのないupdateをして、のをにすることもできます。

$user = User::find(1); $user->update(['name' => 'abc', 'location' => 'xyz']);

あらかじめクエリをすることなくモデルをすることもできます

User::where('id', '>', 2)->update(['location' => 'xyz']);

モデルのupdated_atタイムスタンプのをトリガしたくないは、 touchオプションをすことができます

$user = User::find(1); $user->update(['name' => 'abc', 'location' => 'xyz'], ['touch' => false]);

オンラインでEloquentモデルをむ https://riptutorial.com/ja/laravel/topic/7984/eloquent-モデル

https://riptutorial.com/ja/home 21

Page 38: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

8: Eloquent

Examples

Eloquentでは、にすように、されたについてもすることができます。

User::whereHas('articles', function (Builder $query) { $query->where('published', '!=', true); })->get();

この、メソッドはarticlesでなければなりません。クロージャーにされるは、するモデルのクエリビルダです。ここでは、のクエリをできます。

Eager Loading

ユーザーモデルがモデルとのをち、をにみみたいとします。これは、ユーザーをするときにユーザーのがみまれることをします。

articlesは、Userモデルのメソッドです。

User::with('articles')->get();

のがある。えばやなど。

User::with('articles','posts')->get();

ネストされたをする

User::with('posts.comments')->get();

のネストされたをびす

User::with('posts.comments.likes')->get()

モデルをする

CommentきのhasManyをつPostモデルがあるとします。のようにして、にするCommentオブジェクトをすることができます

$post = Post::find(1); $commentToAdd = new Comment(['message' => 'This is a comment.']);

https://riptutorial.com/ja/home 22

Page 39: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$post->comments()->save($commentToAdd);

saveManyをすると、のモデルをにできます。

$post = Post::find(1); $post->comments()->saveMany([ new Comment(['message' => 'This a new comment']), new Comment(['message' => 'Me too!']), new Comment(['message' => 'Eloquent is awesome!']) ]);

わりに、EloquentモデルインスタンスのわりにプレーンなPHPをけけるcreateメソッドもあります。

$post = Post::find(1); $post->comments()->create([ 'message' => 'This is a new comment message' ]);

EloquentはEloquentモデルクラスのとしてされています。 Eloquentモデルのように、はなクエリビルダとしてもするため、としてのリレーションシップをすることでなメソッドとクエリがされます。たとえば、こののにをすることができます。

$user->posts()->where('active', 1)->get();

トピックにする

タイプ

1

に1つのコメントがあり、コメントはただ1つのにするとします。

コメントテーブルはpost_idをつようにpost_idます。こののはのようになります。

ポストモデル

public function comments() { return $this->belongsTo(Post::class); }

キーがpost_idのpost_id 、えばキーはexample_post_idです。

https://riptutorial.com/ja/home 23

Page 40: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

public function comments() { return $this->belongsTo(Post::class, 'example_post_id'); }

ローカルがidの、えばローカルがother_id

public function comments() { return $this->belongsTo(Post::class, 'example_post_id', 'other_id'); }

コメントモデル

1のをする

public function post() { return $this->hasMany(Comment::class); }

11

2つのモデルをける UserモデルとPhoneモデルApp\User

<?php namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * Get the phone record associated with the user. */ public function phone() { return $this->hasOne('Phone::class', 'foreign_key', 'local_key'); } }

App\Phone

<?php namespace App; use Illuminate\Database\Eloquent\Model; class Phone extends Model

https://riptutorial.com/ja/home 24

Page 41: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

{ /** * Get the user that owns the phone. */ public function user() { return $this->belongsTo('User::class', 'foreign_key', 'local_key'); } }

foreign_key デフォルトでは、Eloquentはこのをother_model_name_id このはuser_idとphone_id とphone_id 、そうでないはします。

local_key デフォルトでは、Eloquentはこのをid のモデルのキーとみなし、そうでないはします。

データベースがlaravelにってをファイルした、にキーとローカルキーをするはありません

とがあるとします。はくのにし、はくのにします。 3つのテーブルがあります。 2つのモデルと1つのピボットテーブル。 roles 、 users 、およびpermission_roleテーブル

ロールモデル

public function permissions() { return $this->belongsToMany(Permission::class); }

モデル

public function roles() { return $this->belongsToMany(Roles::class); }

1

ピボット・テーブルになるテーブルをしながら、のことをしてください。

eloquentがピボット・キーをするためにアルファベットをするrole_permission 、 permission_roleわりにrole_permissionをするとします。ピボットテーブルをのように2のパラメータとしてすがあります。

ロールモデル

public function permissions() { return $this->belongsToMany(Permission::class, 'role_permission'); }

モデル

https://riptutorial.com/ja/home 25

Page 42: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

public function roles() { return $this->belongsToMany(Roles::class, 'role_permission'); }

2

ピボット・テーブルでなるキーをしているは、

Eloquentは、3と4のパラメータとしてキーがされないと、 _idつなテーブルになるとします。ピボットはrole_idとpermission_idフィールドをっているとします。これらのキーをするは、3と4のパラメーターとしてすがあります。

あればうことができますother_role_idのわりにrole_idとother_permission_idのわりpermission_idされるべきです。それはのようになります。

ロールモデル

public function permissions() { return $this->belongsToMany(Permission::class, 'role_permission', 'other_role_id', 'other_permission_id'); }

モデル

public function roles() { return $this->belongsToMany(Roles::class, 'role_permission', 'other_permission_id', 'other_role_id'); }

のは、モデルがのけでののモデルにすることをにする。いはイメージであり、ユーザーとプロダクトのがイメージをつことができます。テーブルのはのようになります。

user id - integer name - string email - string product id - integer title - string SKU - string image id - integer url - string imageable_id - integer imageable_type - string

るべきなはテーブルにあります。 imageable_idにはユーザーまたはのIDがまれ、 imageable_typeに

https://riptutorial.com/ja/home 26

Page 43: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

はモデルのクラスがまれます。モデルでは、のようにをします。

<?php namespace App; use Illuminate\Database\Eloquent\Model; class Image extends Model { /** * Get all of the owning imageable models. */ public function imageable() { return $this->morphTo(); } } class User extends Model { /** * Get all of the user's images. */ public function images() { return $this->morphMany('Image::class', 'imageable'); } } class Product extends Model { /** * Get all of the product's images. */ public function images() { return $this->morphMany('Image::class', 'imageable'); } }

また、モデルからのをするには、 morphToのびしをするメソッドのにアクセスしmorphTo 。たちの、それはイメージモデルのimageableメソッドです。そこで、そのメソッドにプロパティとしてアクセスします

$image = App\Image::find(1); $imageable = $image->imageable;

このimageableは、ユーザーまたはプロダクトのいずれかをします。

とがあるとします。はくのにし、はくのにします。 3つのテーブルがあります。 2つのモデルと1つのピボットテーブル。 roles 、 users 、およびpermission_roleテーブル

ロールモデル

https://riptutorial.com/ja/home 27

Page 44: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

public function permissions() { return $this->belongsToMany(Permission::class); }

モデル

public function roles() { return $this->belongsToMany(Roles::class); }

1

ピボット・テーブルになるテーブルをしながら、のことをしてください。

eloquentがピボット・キーをするためにアルファベットをするrole_permission 、 permission_roleわりにrole_permissionをするとします。ピボットテーブルをのように2のパラメータとしてすがあります。

ロールモデル

public function permissions() { return $this->belongsToMany(Permission::class, 'role_permission'); }

モデル

public function roles() { return $this->belongsToMany(Roles::class, 'role_permission'); }

2

ピボット・テーブルでなるキーをしているは、

Eloquentは、3と4のパラメータとしてキーがされないと、 _idつなテーブルになるとします。ピボットはrole_idとpermission_idフィールドをっているとします。これらのキーをするは、3と4のパラメーターとしてすがあります。

あればうことができますother_role_idのわりにrole_idとother_permission_idのわりpermission_idされるべきです。それはのようになります。

ロールモデル

public function permissions() { return $this->belongsToMany(Permission::class, 'role_permission', 'other_role_id',

https://riptutorial.com/ja/home 28

Page 45: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

'other_permission_id'); }

モデル

public function roles() { return $this->belongsToMany(Roles::class, 'role_permission', 'other_permission_id', 'other_role_id'); }

withPivotをしてテーブルにアクセスする

ピボットテーブルに3の ' permission_assigned_date 'があるとします。デフォルトでは、モデルキーのみがピボットオブジェクトにされます。クエリでこのをするには、withPivotでをするがあります。

public function permissions() { return $this->belongsToMany(Permission::class, 'role_permission', 'other_role_id', 'other_permission_id')->withPivot('permission_assigned_date'); }

アタッチ/デタッチ

また、Eloquentは、モデルでのをよりにするための、いくつかのヘルパーメソッドをしています。たとえば、ユーザーがくのをつことができ、にくのアクセスをたせることができます。モデルをするテーブルにレコードをして、にロールをするには、attachメソッドをします。

$role= App\Role::find(1); $role->permissions()->attach($permissionId);

モデルにリレーションシップをするときに、テーブルにするデータのをすこともできます。

$rol->roles()->attach($permissionId, ['permission_assigned_date' => $date]);

に、ロールにしてのをするには、detachをします

$role= App\Role::find(1); //will remove permission 1,2,3 against role 1 $role->permissions()->detach([1, 2, 3]);

また、syncメソッドをしてのけをすることもできます。 syncメソッドはIDのをけり、テーブルにします。されたにないIDはテーブルからされます。したがって、このがすると、されたのIDのみがテーブルにします。

//will keep permission id's 1,2,3 against Role id 1 $role= App\Role::find(1)

https://riptutorial.com/ja/home 29

Page 46: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$role->permissions()->sync([1, 2, 3]);

オンラインでEloquentをむ https://riptutorial.com/ja/laravel/topic/7960/eloquent-

https://riptutorial.com/ja/home 30

Page 47: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

9: EloquentのフィールドエイリアスをするオンラインでEloquentのフィールドエイリアスをするをむ

https://riptutorial.com/ja/laravel/topic/7927/eloquentのフィールドエイリアスをする

https://riptutorial.com/ja/home 31

Page 48: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

10: HTMLとフォームビルダ

Examples

インストール

HTMLとForm BuilderはLaravel 5のコアコンポーネントではないため、インストールするがあります。

composer require laravelcollective/html "~5.0"

にconfig/app.phpでサービスプロバイダをするがあります。ファサードのエイリアスはのようになります。

'providers' => [ // ... Collective\Html\HtmlServiceProvider::class, // ... ], 'aliases' => [ // ... 'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class, // ... ],

フォームとHTMLでフルドキュメントをできます

オンラインでHTMLとフォームビルダをむ https://riptutorial.com/ja/laravel/topic/3672/htmlとフォームビルダ

https://riptutorial.com/ja/home 32

Page 49: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

11: Laravel 5.2.31 +のデフォルトのルーティングをする

public function mapRouter $ router//アプリケーションのルートをします。•

protected function mapWebRoutesRouter $ router//アプリケーションの "Web"ルートをします。

パラメーター

パラメータ ヘッダ

ルータ$ルータ \ Illuminate \ Routing \ Router $ router

ミドルウェアとは、あるルートへのすべてのコールがにルートのコードにたるにミドルウェアをすることをします。 Laravelでは、Webミドルウェアがセッションやcsrfトークンチェックなどをするためにされます。

デフォルトでauthやapiのようなのミドルウェアがあります。のミドルウェアをにすることもできます。

Examples

のミドルウェアでapi-routesをし、デフォルトのWebミドルウェアをする

Laravelバージョン5.2.31、WebミドルウェアはRouteServiceProvider

https://github.com/laravel/laravel/commit/5c30c98db96459b4cc878d085490e4677b0b67edでデフォルトでされます。

app / Providers / RouteServiceProvider.phpでは、app / Http / routes.phpのすべてのルートにミドルウェアをするのがあります

public function map(Router $router) { $this->mapWebRoutes($router); } // ... protected function mapWebRoutes(Router $router) { $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web', ], function ($router) { require app_path('Http/routes.php');

https://riptutorial.com/ja/home 33

Page 50: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

}); }

ごのとおり、 ミドルウェアの Webがされています。ここでこれをすることができます。しかし、のエントリをにして、たとえばapiルートをのファイルにれることもできますroutes-api.phpなど

public function map(Router $router) { $this->mapWebRoutes($router); $this->mapApiRoutes($router); } protected function mapWebRoutes(Router $router) { $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web', ], function ($router) { require app_path('Http/routes.php'); }); } protected function mapApiRoutes(Router $router) { $router->group([ 'namespace' => $this->namespace, 'middleware' => 'api', ], function ($router) { require app_path('Http/routes-api.php'); }); }

これにより、routes.phpのなグループラッパーなしでアプリケーションルートからapiルートをにできます

オンラインでLaravel 5.2.31 +のデフォルトのルーティングをするをむ

https://riptutorial.com/ja/laravel/topic/4285/laravel-5-2-31-plusのデフォルトのルーティングをする

https://riptutorial.com/ja/home 34

Page 51: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

12: Laravel 5.4とのSparkpostの

Laravel 5.4にはsparkpost api libがプリインストールされています。 Sparkpost libには、sparkpost

アカウントからつけることができるがです。

Examples

サンプル.envファイルデータ

sparkpost email api setupをにするには、のをenvファイルにしてください。アプリケーションはメールのをするのにしています。 MAIL_DRIVER =スパークポスト SPARKPOST_SECRET = のは、laravels Mail :: sendをしてメールをするビジネスロジックをつコントローラでかれたコードをするものではありません。

オンラインでLaravel 5.4とのSparkpostのをむ https://riptutorial.com/ja/laravel/topic/10136/laravel-

5-4とのsparkpostの

https://riptutorial.com/ja/home 35

Page 52: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

13: laravel-5.2の

Laravelは、バンドル、、Artisan CLIをえたMVCフレームワークです。 Laravelは、CodeIgniter、Yii、ASP.NET MVC、Ruby on Rails、Sinatraなどのフレームワークのれたのくをみんだなツールセットとアプリケーションアーキテクチャをします。 Laravelはオープンソースのフレームワークです。 Webのスピードをさせるになをえています。 Core PHPとAdvanced PHPにしていれば、Laravelはあなたのをにします。それはくのをします。

このセクションでは、laravel-5.1のと、なぜがそれをいたいのかをします。

また、laravel-5.1のきなテーマについてもし、するトピックにリンクしてください。 laravel-5.1

のドキュメントはしくなっているので、これらのトピックのバージョンをするがあります。

Examples

インストールまたはセットアップ

Linux / Mac / UnixマシンにLaravel 5.1をインストールする。

インストールをするに、のがたされているかどうかをしてください。

PHP> = 5.5.9•OpenSSL PHPエクステンション•

PDO PHPエクステンション•

Mbstring PHPエクステンション•

Tokenizer PHPモジュール•

インストールをしましょう

をインストールしてください。 Composerドキュメント1. composer create-project laravel/laravel <folder-name> "5.1.*"2.

storageフォルダとbootstrap/cacheフォルダがきみであることをしてください。3. .envファイルをき、データベース、デバッグステータス、アプリケーションなどのをします。

4.

php artisan serveをし、ブラウザでhttp://localhost:8000ます。すべてがうまくいけば、ページをするがあります

5.

Ubuntu 16.04、14.04、およびLinuxMintにLaravel 5.1 Frameworkをインストールする

ステップ1 - LAMPをインストールする

https://riptutorial.com/ja/home 36

Page 53: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Laravelをいめるには、まずランニングLAMPサーバーをするがあります。すでにLAMPスタックをしているは、このステップをスキップします。それのは、のコマンドをしてUbuntuシステムのランプをします。

PHP 5.6をインストールする

$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:ondrej/php $ sudo apt-get update $ sudo apt-get install -y php5.6 php5.6-mcrypt php5.6-gd

Apache2をインストールする

$ apt-get install apache2 libapache2-mod-php5

MySQLをインストールする

$ apt-get install mysql-server php5.6-mysql

ステップ2 - Composerのインストール

Composerは、Laravelのをインストールするためにです。したがって、のコマンドをして、システムでコマンドとしてダウンロードしてしてください。

$ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer $ sudo chmod +x /usr/local/bin/composer

ステップ3 - Laravelをインストールする

Laravelのをダウンロードするには、のコマンドをってlaravelのマスターリポジトリをgithubからクローンします。

$ cd /var/www $ git clone https://github.com/laravel/laravel.git

Laravelコードディレクトリにし、composerをしてLaravelフレームワークになすべてのをインストールします。

$ cd /var/www/laravel $ sudo composer install

のインストールにはしばらくがかかります。その、ファイルにするなアクセスをしてください。

$ chown -R www-data.www-data /var/www/laravel $ chmod -R 755 /var/www/laravel $ chmod -R 777 /var/www/laravel/app/storage

https://riptutorial.com/ja/home 37

Page 54: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ステップ4 - キーをする

Illuminateサービスでされる32ビットのキーをします。

$ php artisan key:generate Application key [uOHTNu3Au1Kt7Uloyr2Py9blU0J5XQ75] set successfully.

config/app.phpファイルをし、のされたアプリケーションキーをのようにします。また、がしくされていることをしてください。

'key' => env('APP_KEY', 'uOHTNu3Au1Kt7Uloyr2Py9blU0J5XQ75'), 'cipher' => 'AES-256-CBC',

ステップ5 - Apache VirtualHostをする

Apacheのファイルにホストをして、WebブラウザからLaravelフレームワークにアクセスします。 /etc/apache2/sites-available/ディレクトリにApacheファイルをし、のをしてください。

$ vim /etc/apache2/sites-available/laravel.example.com.conf

これはホストのファイルです。

<VirtualHost *:80> ServerName laravel.example.com DocumentRoot /var/www/laravel/public <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/laravel> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

に、のコマンドをしてWebサイトをにし、Apacheサービスをみみさせます。

$ a2ensite laravel.example.com $ sudo service apache2 reload

ステップ6 - Laravelへのアクセス

こので、システムにLaravel 5 PHPフレームワークがにしました。すぐWebブラウザでLaravelアプリケーションにアクセスするためのホストファイルエントリをします。 127.0.0.1をApacheで

https://riptutorial.com/ja/home 38

Page 55: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

したドメインでサーバーipとlaravel.example.comでします。

$ sudo echo "127.0.0.1 laravel.example.com" >> /etc/hosts

おにりのWebブラウザでhttp://laravel.example.comにアクセスしてください。

オンラインでlaravel-5.2のをむ https://riptutorial.com/ja/laravel/topic/1987/laravel-5-2の

https://riptutorial.com/ja/home 39

Page 56: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

14: laravel-5.3の

Laravel 5.2から5.3への、、

Examples

$ loop

しばらくの、Bladeでのループはされていたことがわかりました。5.3のように、 $loopというがあります

@foreach($variables as $variable) // Within here the `$loop` variable becomes available // Current index, 0 based $loop->index; // Current iteration, 1 based $loop->iteration; // How many iterations are left for the loop to be complete $loop->remaining; // Get the amount of items in the loop $loop->count; // Check to see if it's the first iteration ... $loop->first; // ... Or last iteration $loop->last; //Depth of the loop, ie if a loop within a loop the depth would be 2, 1 based counting. $loop->depth; // Get's the parent `$loop` if the loop is nested, else null $loop->parent; @endforeach

オンラインでlaravel-5.3のをむ https://riptutorial.com/ja/laravel/topic/9231/laravel-5-3の

https://riptutorial.com/ja/home 40

Page 57: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

15: laravel-5.3をいめるこのセクションでは、laravel-5.3のと、なぜがそれをいたいのかをします。

また、laravel-5.3のきなテーマについてもし、するトピックにリンクするがあります。 laravel-

5.3のドキュメントはしくなっているので、これらのトピックのバージョンをするがあります。

Examples

Laravelのインストール

PHP >= 5.6.4とComposerマシンにインストールされているがあります。のバージョンをするには、のコマンドをします。 PHPの

php -v

このような

PHP 7.0.9 (cli) (built: Aug 26 2016 06:17:04) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

ターミナル/ CMDでコマンドをすることができます

composer --version

このような

composer version 1.2.1 2016-09-12 11:27:19

Laravelは、 Composerをしてそのをします。したがって、Laravelをするに、マシンにComposer

がインストールされていることをしてください。

Laravelインストーラで

まず、ComposerをしてLaravelインストーラをダウンロードします。

composer global require "laravel/installer"

$ PATHに$HOME/.composer/vendor/binディレクトリまたはOSののディレクトリをして、システム

https://riptutorial.com/ja/home 41

Page 58: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

によってlaravelファイルをlaravelことができるようにしてください。

laravel newコマンドをインストールすると、したディレクトリにしいLaravelインストールがされます。たとえば、 laravel new blogは、Laravelのがすべてインストールされたlaravel new blog

Laravelインストールをむblogというディレクトリがされます。

laravel new blog

Composer Create-Projectをして

また、にComposer create-projectコマンドをしてLaravelをインストールすることもcreate-

projectます。

composer create-project --prefer-dist laravel/laravel blog

セットアップ

Laravelのインストールがしたら、ストレージとブートストラップフォルダのpermissionsをするがあります。

permissionsは、Laravelのインストールにするためのもなプロセスの1つです。

ローカルサーバー

PHPがローカルにインストールされていて、PHPのみみサーバーをしてアプリケーションをしたいは、 serve Artisanコマンドをすることができます。このコマンドは、サーバーをhttp://localhost:8000

php artisan serve

ブラウザのリクエストURL http://localhost:8000きますhttp://localhost:8000

サーバー

Laravelフレームワークには、いくつかのシステムがあります。もちろん、これらのはすべてLaravel Homesteadマシンでたされるため、ローカルのLaravelとしてHomesteadをすることをくおめします。

ただし、Homesteadをしていないは、サーバーがのをたしていることをするがあります。

PHP> = 5.6.4•OpenSSL PHPエクステンション•

PDO PHPエクステンション•

Mbstring PHPエクステンション•

https://riptutorial.com/ja/home 42

Page 59: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Tokenizer PHPモジュール•XML PHP•

ローカルサーバー

PHPがローカルにインストールされていて、PHPのみみサーバーをしてアプリケーションをしたいは、 serve Artisanコマンドをすることができます。このコマンドは、サーバーをhttp://localhost:8000

php artisan serve

もちろん、よりなローカルオプションは、 Homestead and Valetからできます。

8080ようなカスタムポートをすることもです。これは--portオプションでうことができます。

php artisan serve --port=8080

ホストファイルにローカルドメインがあるは、ホストをできます。これは--hostオプションでうことができます。

php artisan serve --host=example.dev

カスタムホストとポートですることもできます。これは、のコマンドでできます。

php artisan serve --host=example.dev --port=8080

Hello Worldのとビューの

routes/web.phpファイルをき、のコードをファイルにりけます

Route::get('helloworld', function () { return '<h1>Hello World</h1>'; });

ここでは「 helloworld 」はアクセスしたいページとしてし、

ブレードファイルをせずにページにアクセスしたいは、このでlaravelルーティングをできます

ブラウザのアドレスバーにlocalhost/helloworld 、Hello Worldをしているページにアクセスできます。

のステップ。

とてもシンプルなHello Worldをするをびました hello worldをすことでしかし、々はそれをよりいものにすることができます

https://riptutorial.com/ja/home 43

Page 60: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ステップ1。 のコードをするのではなく、 routes/web.phpファイルからめましょう。のコードをします

Route::get('helloworld', function() { return view('helloworld'); });

のりはなhelloworldテキストではなく、ビューです。 Laravelのビューはにしいファイルです。このファイル "helloworld"には、HTMLがまれています。

ステップ2。 ビューをびすようにルートをしたので、ビューをします。 Laravelはビューのblade.phpファイルでします。したがって、この、たちのルートはhelloworldとばれます。だからたちのはhelloworld.blade.phpとばれます

resources/viewsディレクトリにしいファイルをし、helloworld.blade.phpとぶ

ここで、このしいファイルをき、Hello Worldをしてします。ののように、のなるでをることができます。

<html> <body> <h1> Hello World! </h1> <?php echo "Hello PHP World!"; ?> </body> </html>

すぐあなたのブラウザにき、なのようにあなたのルートをもうタイプしてください

localhost/helloworldあなたはすべてののしいされたビューをるでしょう

Hello Worldの

ルートファイルをく。のコードをりけます。

Route::get('helloworld', function () { return '<h1>Hello World</h1>'; });

http://localhost/helloworldをルーティングすると、Hello Worldがされます。

routesファイルは/routes/web.phpあり/routes/web.php

pretty URLのWebサーバー

あなたがインストールしたはLaravelてComposer or the Laravel installer 、のにあなたがとなりま

https://riptutorial.com/ja/home 44

Page 61: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

す。

Apache Laravelのには、 public/.htaccessファイルがまれています。このファイルは、パスのindex.phpフロントコントローラなしでURLをするためにされます。 ApacheでLaravelをするに、 mod_rewriteモジュールをにして、 .htaccessファイルがサーバーによって.htaccessされるようにしてください。

Laravelにされている.htaccessファイルがApacheのインストールでしないは、のようにしてください

Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]

NginxのNginxをしている、サイトののディレクティブはすべてのリクエストをindex.phpフロントコントローラにります

location / { try_files $uri $uri/ /index.php?$query_string; }

もちろん、 HomesteadやValetをすると、かなりのURLがにされます。

オンラインでlaravel-5.3をいめるをむ https://riptutorial.com/ja/laravel/topic/8602/laravel-5-3をいめる

https://riptutorial.com/ja/home 45

Page 62: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

16: LaravelにおけるのDB

Examples

ステップ

データベースファイルおそらくapp/config/database.php で、のタイプののデータベースをできます。たとえば、2つのMySQLデータベースからデータをするには、それらを々にします。

<?php return array( 'default' => 'mysql', 'connections' => array( # Our primary database connection 'mysql' => array( 'driver' => 'mysql', 'host' => 'host1', 'database' => 'database1', 'username' => 'user1', 'password' => 'pass1' 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), # Our secondary database connection 'mysql2' => array( 'driver' => 'mysql', 'host' => 'host2', 'database' => 'database2', 'username' => 'user2', 'password' => 'pass2' 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), ), );

デフォルトのはまだmysqlされています。つまり、にしないり、アプリケーションはmysqlをします。

スキーマビルダーの

スキーマビルダーでは、のでスキーマファサードをします。 connection()メソッドをして、するをします。

Schema::connection('mysql2')->create('some_table', function($table) {

https://riptutorial.com/ja/home 46

Page 63: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$table->increments('id'): });

DBクエリービルダーの

Schema Builderとに、Query Builderでをします 。

$users = DB::connection('mysql2')->select(...);

Eloquentをう

Eloquentモデルでするをするはあります。 1つのは、モデルに$ connectionをすることです。

<?php class SomeModel extends Eloquent { protected $connection = 'mysql2'; }

は、にsetConnectionメソッドをしてすることもできます。

<?php class SomeController extends BaseController { public function someMethod() { $someModel = new SomeModel; $someModel->setConnection('mysql2'); $something = $someModel->find(1); return $something; } }

Laravelのドキュメント

のがされているでも、々のはDBファサードのでアクセスできます。 connectionにされるnameは、 config/database.phpファイルにリストされているの1つにするがあります。

$users = DB::connection('foo')->select(...);

rawは、インスタンスでgetPdoメソッドをしてPDOインスタンスのとなるものにアクセスすることもできます。

$pdo = DB::connection()->getPdo();

https://riptutorial.com/ja/home 47

Page 64: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

https://laravel.com/docs/5.4/database#using-multiple-database-connections

オンラインでLaravelにおけるのDBをむ https://riptutorial.com/ja/laravel/topic/9605/laravelにおけるのdb

https://riptutorial.com/ja/home 48

Page 65: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

17: LaravelのCustomExceptionクラス

PHPのは、これまでにないイベントやエラーがしたときにスローされます。

として、ifなどのアプリケーションロジックをするためにをしてはならず、Exceptionクラスのサブクラスであるがあります。

1つのクラスですべてのをキャッチしたのなは、にじてなるメッセージをすカスタムハンドラをできることです。

Examples

laravelのCustomExceptionクラス

すべてのエラーとカスタムとデフォルトのは、app / Exceptions / Handler.phpのHandlerクラスによって2つのメソッドのけをりてされます。

レンダリング

public function render($request, Exception $e) { //check if exception is an instance of ModelNotFoundException. if ($e instanceof ModelNotFoundException) { // ajax 404 json feedback if ($request->ajax()) { return response()->json(['error' => 'Not Found'], 404); } // normal 404 view page feedback return response()->view('errors.missing', [], 404); } return parent::render($request, $e); }

404.blade.phpというのエラーフォルダーにするビューをします

ユーザーがつかりません。

あなたはインターネットのバランスをった

オンラインでLaravelのCustomExceptionクラスをむ

https://riptutorial.com/ja/laravel/topic/9550/laravelのcustomexceptionクラス

https://riptutorial.com/ja/home 49

Page 66: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

18: laravelのURLからパブリックをする

LaravelのURLからpublicをするには、インターネットでくのがありますが、もなはのとおりです

Examples

どうやってするか

URLからpublicをするには、のにいます

.htaccessファイルを/publicディレクトリからLaravel/projectルートフォルダにコピーします。

1.

Laravel/projectルートフォルダのserver.phpをindex.phpます。2.

あなたはになるでしょう。

これは、 Laravel 4.2 、 Laravel 5.1 、 Laravel 5.2 、 Laravel 5.3でテストされています。

はこれがURLからpublicをするもなだとう。

URLをからする

server.phpをindex.phpする1. .htaccessをpublicフォルダからrootフォルダにコピーします。2. に.htaccessをのようにしする3.

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]

にははpublicフォームのURLをするためにこのメソッドをしました。

オンラインでlaravelのURLからパブリックをするをむ

https://riptutorial.com/ja/laravel/topic/9786/laravelのurlからパブリックをする

https://riptutorial.com/ja/home 50

Page 67: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

19: LinuxサーバのホスティングにLaravel 5アプリケーションをするホスティングにLaravelプロジェクトをするのについては、 このGithubレポをごください。

Examples

LinuxサーバのホスティングのLaravel 5アプリケーション

デフォルトでLaravelプロジェクトのpublicフォルダは、でもどこからでもリクエストできるアプリケーションのコンテンツをし、りのアプリケーションコードはなのないにはえないか、アクセスできません。

マシンでアプリケーションをしたは、プロダクションサーバーにプッシュしてどこからでもインターネットにアクセスできるようにするがあります。

ほとんどのアプリ/ウェブサイトでは、まずに、GoDaddy、HostGatorなどのサービスプロバイダをホストするホスティングパッケージのホスティングパッケージをすることです。

プロバイダにdocument_rootをでするようすることができるので、LaravelアプリケーションをサーバーにFTPでアップロードし、rootのを{app} / publicにするだけです。

しかし、このようなホスティングパッケージには、アクセスとファイルアクセスにがあります。デフォルトでは、ホスティングアカウントのpublic_htmlフォルダにアプリ/コードをアップロードするがあります。

Laravelプロジェクトをホスティングアカウントにアップロードしたいのであれば、どうやってそれをやりますかホスティングアカウントのpublic_htmlフォルダにアプリケーションフォルダをアップロードするがありますか - かにNO

public_htmlフォルダのすべてのものは、セキュリティのきなリスクになる「でもする」ことができるためです。

ホスティングアカウントにプロジェクトをアップロードする - Laravelの

ステップ1

public_htmlフォルダとじレベルにlaravelというフォルダまたはきなものをします。

Eg: / |--var |---www |----laravel //create this folder in your shared hosting account |----public_html |----log

https://riptutorial.com/ja/home 51

Page 68: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ステップ2

laravelフォルダサーバーホスト - ホスティングアカウントのlaravelプロジェクトマシンからpublicフォルダをくすべてのものをコピーします。 あなたがすることができます

Cパネルもい•

FTPクライアント FileZillaのように、ホスティングアカウントにし、FTPアップロードによってファイルとフォルダをします。

ネットワークドライブのマップマシンにマップされたネットワークドライブをして、ネットワークアドレスとして「 ftp// your-domain-name 」をしてホスティングアカウントのルートフォルダにすることもできます。

ステップ3

laravelプロジェクトのpublicフォルダをマシンでき、すべてをコピーしてpublic_htmlフォルダサーバホスト - ホスティングアカウントにりけます。 ステップ4

ホスティングアカウントcpanelエディタまたはのエディタのpublic_htmlフォルダにindex.phpファイルをき、のようにします。

する

require __DIR__.'/../bootstrap/autoload.php';

require __DIR__.'/../laravel/bootstrap/autoload.php';

そして

$app = require_once __DIR__.'/../bootstrap/app.php';

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

してじます。

ステップ5

すぐlaravelフォルダホスティングアカウント-serverにき、 server.phpファイルをきます

する

require_once __DIR__.'/public/index.php';

https://riptutorial.com/ja/home 52

Page 69: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

require_once __DIR__.'../public_html/index.php';

してじます。

ステップ6

laravel/storageフォルダにとそののすべてのファイル、サブフォルダ、ファイルをホスティングアカウント - サーバーの777ます。 linuxのファイルパーミッションにしてください。ののようなものです。しくされないと、あなたのアプリをにしてにするがあります。 Linuxファイルのパーミッションについては、 https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissionsをしてください。

ステップ7

ローカル/サーバの.envファイルはgitでされるため、APP_KEYをむすべてのをつためし、リポジトリにプッシュすることでしないでください。 .gitignoreファイルには.envが.envされているので、リポジトリにはアップロードされません。

のすべてのをした、laravelフォルダに.envファイルをし、したすべてのをローカル/サーバーの.envファイルから.envサーバーの.envファイルに.envます。

env() 2のパラメータでこのをデフォルトでするlaravelアプリケーションのconfigフォルダにapp.php 、 database.phpなどのファイルがありますが、これらのファイルのをハードコードしないでください。リポジトリをプルするユーザーのファイル。したがって、で.envファイルをすることをおめします。

また、laravelは、としてできる.env-exampleファイルをします。

それでおしまい。

サーバーでドメインとしてしたURLにアクセスすると、laravelアプリケーションはローカルホストマシンとじようにするはずですが、アプリケーションコードはで、なファイルアクセスがないユーザーはアクセスできません。

オンラインでLinuxサーバのホスティングにLaravel 5アプリケーションをするをむ

https://riptutorial.com/ja/laravel/topic/2410/linuxサーバのホスティングにlaravel-5アプリケーションをする

https://riptutorial.com/ja/home 53

Page 70: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

20: WindowsでLaravelをしてアップロードするときのファイルの

パラメーター

パラメータ/

ファイルアップロード ファイル<input>フィールドの

$ sampleName にされる、またはユーザーがアップロードしたファイルの

app_path アプリケーションへのパスをするためのLaravelヘルパーです

getCLientOriginalExtensionユーザーがアップロードしたファイルのをするためのLaravelラッパー

Examples

ユーザーがアップロードしたファイルのタイムスタンプきファイルをします。

はWindowsマシンではしません

$file = $request->file('file_upload'); $sampleName = 'UserUpload'; $destination = app_path() . '/myStorage/'; $fileName = $sampleName . '-' . date('Y-m-d-H:i:s') . '.' . $file->getClientOriginalExtension(); $file->move($destination, $fileName);

"ファイルを/ path ...にできませんでした"のようなエラーがスローされます。

どうして - これはUbuntuサーバーでにします

そのは、Windows colon ':'はlinuxでされているファイルではされていないからです。 Ubuntu

Linuxでうまくしているコードがうまくいかないのはなぜかというがっています。 たちののいは、ファイルのパーミッションとそのようなものをチェックすることですが、 colon ':'がここでのであることにづかないかもしれません。 したがって、Windowsでファイルをアップロードするには、 タイムスタンプきファイルをするにcolon':'をしないでください。のようにしてください

$filename = $sampleName . '-' . date('Y-m-d-H_i_s') . '.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18-11_25_43.xlsx OR

https://riptutorial.com/ja/home 54

Page 71: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$filename = $sampleName . '-' .date('Y-m-d H i s') . '.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18 11 25 43.xlsx OR $filename = $sampleName . '-'.date('Y-m-d_g-i-A').'.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18_11-25-AM.xlsx

オンラインでWindowsでLaravelをしてアップロードするときのファイルのをむ

https://riptutorial.com/ja/laravel/topic/2629/windowsでlaravelをしてアップロードするときのファイルの

https://riptutorial.com/ja/home 55

Page 72: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

21: イベントとリスナー

Examples

しいユーザーにメールをするためのイベントとリスナーの

LaravelのイベントではObserverパターンをできます。これは、アプリケーションにするたびに、ユーザーにウェルカムメールをするためにできます。

しいイベントとリスナーは、イベントとそののリスナーをApp\Providers\EventServiceProviderクラスにした、のコマンドラインユーティリティをしてできます。

protected $listen = [ 'App\Events\NewUserRegistered' => [ 'App\Listeners\SendWelcomeEmail', ], ];

protected $listen = [ \App\Events\NewUserRegistered::class => [ \App\Listeners\SendWelcomeEmail::class, ], ];

php artisan generate:eventします。このコマンドは、のApp\EventsとApp\Listenersディレクトリにあるすべてのするイベントとリスナーをします。

1つのイベントにのリスナーをくことができます

protected $listen = [ 'Event' => [ 'Listner1', 'Listener2' ], ];

NewUserRegisteredは、しくされたUserモデルのなるラッパークラスです。

class NewUserRegistered extends Event { use SerializesModels; public $user; /** * Create a new event instance. * * @return void */ public function __construct(User $user) {

https://riptutorial.com/ja/home 56

Page 73: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$this->user = $user; } }

このEventは、 SendWelcomeEmailリスナーによってされます。

class SendWelcomeEmail { /** * Handle the event. * * @param NewUserRegistered $event */ public function handle(NewUserRegistered $event) { //send the welcome email to the user $user = $event->user; Mail::send('emails.welcome', ['user' => $user], function ($message) use ($user) { $message->from('[email protected]', 'John Doe'); $message->subject('Welcome aboard '.$user->name.'!'); $message->to($user->email); }); } }

のステップは、しいユーザがするたびにイベントをびすか、またはびすことです。これは、ユーザロジックをしているコントローラ、コマンド、またはサービスでうことができます。

event(new NewUserRegistered($user));

オンラインでイベントとリスナーをむ https://riptutorial.com/ja/laravel/topic/4687/イベントとリスナー

https://riptutorial.com/ja/home 57

Page 74: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

22: インストール

Examples

インストール

Laravelアプリケーションは、なPHPマネージャであるComposerをしてインストールおよびされます。しいLaravelアプリケーションをするには、2つのがあります。

$ composer create-project laravel/laravel [foldername]

または

$ composer create-project --prefer-dist laravel/laravel [foldername]

[foldername]に、しいLaravelアプリケーションをインストールするディレクトリのをします。インストールにしてはなりません。また、Composerファイルをシステムパスにするがあります。

のバージョンのフレームワークをしてLaravelプロジェクトをしたいは、バージョンパターンをすることができます。そうしないと、プロジェクトはのなバージョンをします。

たとえば、Laravel 5.2でプロジェクトをするは、のようにします。

$ composer create-project --prefer-dist laravel/laravel 5.2.*

なぜ--prefer-dist

パッケージをダウンロードするには、 sourceとdist 2つのがあります。の、Composerはデフォルトでdistをします。 sourceはバージョンリポジトリです。 --prefer-sourceがな、Composerはソースからインストールします。

--prefer-distは--prefer-sourceであり、 --prefer-source distからインストールするようにComposerにします。これにより、ビルドサーバーやベンダーのプログラムをはしないそののでは、インストールがにされます。また、ながないと、Gitのをできます。

Laravelインストーラをして

Laravelは、Laravelアプリケーションをすばやくするためのなコマンドラインユーティリティをします。まず、インストーラをインストールします。

$ composer global require laravel/installer

Laravelインストーラをするには、Composerバイナリフォルダが$ PATHにあることを

https://riptutorial.com/ja/home 58

Page 75: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

するがあります。

まず、$ PATHにすでにっているかどうかべてください

echo $PATH

すべてがしければ、はのようになるはずです

Users/yourusername/.composer/vendor/bin

そうでないは、 .bashrcするか、ZSHをしているは.zshrcをして、Composerベンダーディレクトリへのパスを.zshrcます。

このコマンドをインストールすると、したディレクトリにしいLaravelインストールがされます。

laravel new [foldername]

あなたもうことができます. [foldername]のわりにドットをして、のディレクトリにサブディレクトリをせずにプロジェクトをします。

アプリケーションの

Laravelには、PHPベースのWebサーバーがバンドルされています。このWebサーバーは、

$ php artisan serve

デフォルトでは、HTTPサーバーはポート8000をしますが、ポートがにであるや、にのLaravelアプリケーションをするは、することができます--portのポートをするフラグ

$ php artisan serve --port=8080

HTTPサーバーは、アプリケーションをするためのデフォルト・ドメインとしてlocalhostをしますが、-- --hostフラグをしてのアドレスをすることができます。

$ php artisan serve --host=192.168.0.100 --port=8080

のサーバーをする

のWebサーバーソフトウェアをするは、プロジェクトのpublicディレクトリにいくつかのファイルがされています。 Apacheのは.htaccess 、ASP.NETのはweb.config 。 NGINXなどののソフトウェアの、さまざまなオンラインツールをしてApacheをできます。

このフレームワークでは、Webサーバーユーザーはのディレクトリへのきみをっているがあります。

/storage•

https://riptutorial.com/ja/home 59

Page 76: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

/bootstrap/cache•

* nixオペレーティングシステムでは、これは

chown -R www-data:www-data storage bootstrap/cache chmod -R ug+rwx storage bootstrap/cache

www-dataはWebサーバーユーザーのとグループです

したWebサーバは、プロジェクトの/publicディレクトリのコンテンツをするようにするがあります。は、ドキュメントルートとしてします。りのプロジェクトは、Webサーバーからアクセスできないようにするがあります。

すべてをしくした、ウェブサイトのURLにすると、Laravelのデフォルトのランディングページがされます。

Laravelフレームワークにはのがあります。

5.3

PHP> = 5.6.4•XML PHP•PDO PHPエクステンション•

OpenSSL PHPエクステンション•

Mbstring PHPエクステンション•

Tokenizer PHPモジュール•

5.1LTS 5.2

PHP> = 5.5.9•PDO PHPエクステンション•

Laravel 5.1は、PHP 7.0をサポートするLaravelののバージョンです。•

5.0

PHP> = 5.4、PHP <7•

OpenSSL PHPエクステンション•

Tokenizer PHPモジュール•

Mbstring PHPエクステンション•

JSON PHPPHP 5.5のみ•

4.2

PHP> = 5.4•Mbstring PHPエクステンション•

JSON PHPPHP 5.5のみ•

https://riptutorial.com/ja/home 60

Page 77: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Hello Worldのコントローラとビューの

Laravelアプリケーションをする

$ composer create-project laravel/laravel hello-world

1.

プロジェクトフォルダにします。

$ cd C:\xampp\htdocs\hello-world

2.

コントローラーをする

$ php artisan make:controller HelloController --resource

3.

これによりapp / Http / Controllers / HelloController.phpファイルがされます。 --resourceオプションは、コントローラのCRUDメソッドindex、create、show、updateなどをします。

HelloControllerのindexメソッドへのルートをします。このをapp / Http / routes.php バージョン 5.05.2 またはroutes / web.php バージョン5.3にしてください

4.

Route::get('hello', 'HelloController@index');

しくされたルートをるには、 $ php artisan route:list

viewsディレクトリにブレードテンプレートをします。

resources / views / hello.blade.php

<h1>Hello world!</h1>

5.

に、 hello.blade.phpテンプレートをするようindexメソッドにします

アプリ/ Http /コントローラ/ HelloController.php

6.

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class HelloController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response

https://riptutorial.com/ja/home 61

Page 78: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

*/ public function index() { return view('hello'); } // ... other resources are listed below the index one above

のPHP Artisan Commandをしてアプリケーションをすることができます php artisan serve ;アプリケーションにアクセスできるアドレスがされますはデフォルトでhttp// localhost8000になります 。

または、ブラウザのなにけることもできます。 XAMPP http// localhost / hello-world / public / hello

のようなサーバーをしているは、のようにxampp / htdocsディレクトリにLaravelインスタンスhello-worldをインストールするがあります。あなたのコマンドラインインターフェイスからこのHello Wordのステップ1、 xampp / htdocsディレクトリをしてください 。

Hello Worldの

ルートファイルをく。のコードをりけます。

Route::get('helloworld', function () { return '<h1>Hello World</h1>'; });

localhost/helloworldをルーティングすると、 Hello Worldがされます。

routesファイルはのにあります。

5.3

Web

routes/web.php

APIの

routes/api.php

5.2 5.1LTS 5.0

app/Http/routes.php

4.2

app/routes.php

LaraDockLaravel Homestead for Dockerをしたインストール

https://riptutorial.com/ja/home 62

Page 79: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

LaraDockはのようなLaravel Homesteadですが、VagrantのわりにDockerのためのものです。 https://github.com/LaraDock/laradock

インストール* GitとDockerがです

LaraDockリポジトリをクローン

A.にLaravelプロジェクトをおちのは、このリポジトリをLaravelのルートディレクトリにしてください

git submodule add https://github.com/LaraDock/laradock.git

B. Laravelプロジェクトをおちでなく、DockerからLaravelをインストールするは、マシンののにこのレポをクローンしてください

git clone https://github.com/LaraDock/laradock.git

なコンテナをするdocker-composeコマンドをするにlaradockフォルダにいることをする。

NGINXとMySQLをするdocker docker-compose up -d nginx mysql

なコンテナのリストがあり、のみわせをするためにできます。

nginx 、 hhvm 、 php-fpm 、 mysql 、 redis 、 postgres 、 mariadb 、 neo4j 、 mongo 、 apache2 、 caddy 、 memcached 、 beanstalkd 、 beanstalkd-console 、 workspace

1.

Workspaceコンテナにり、Artisan、Composer、PHPUnit、Gulp、...のようなコマンドをします。

docker-compose exec workspace bash

2.

Laravelプロジェクトがまだインストールされていないは、DockerコンテナからLaravelをインストールするにいます。

a。ワークスペースコンテナをします。

b。 Laravelをインストールします。 composer create-project laravel/laravel my-cool-app "5.3.*"

3.

Laravelをします。 Laravelの.envファイルをき、DB_HOSTをmysqlにします

DB_HOST=mysql

4.

https://riptutorial.com/ja/home 63

Page 80: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ブラウザをき、ローカルホストのアドレスにアクセスしてください。5.

オンラインでインストールをむ https://riptutorial.com/ja/laravel/topic/7961/インストール

https://riptutorial.com/ja/home 64

Page 81: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

23: インストールガイドこのセクションでは、laravel-5.4のと、なぜがそれをいたいのかをします。

また、laravel-5.4のきなテーマについてもし、するトピックにリンクしてください。 laravel-5.4

のドキュメントはしくなっているので、それらのトピックのバージョンをするがあります。

Examples

インストール

ララベルをセットアップまたはインストールするためのしい。

laravelをにインストールするためにはがです。

システムにlaravelをインストールするは3つあります。

Laravelインストーラで

composerをってLaravelインストーラをダウンロードする

composer global require "laravel/installer"

コンポーザをうに~/.composer/vendor/binをPATHにするがあります。インストールがしたら、 laravel newコマンドをってLaravelしいプロジェクトをすることができます。

laravel new {folder name}

このコマンドは、 siteというのしいディレクトリをし、のすべてのをつしくインストールされたLaravelがディレクトリにインストールされます。

1.

Composer Create-Projectをして

terminalのコマンドをしてしいLaravel appをすることができます

composer create-project laravel/laravel {folder name}

2.

ダウンロード

Laravelをダウンロードしてします。

composer install1.

コピー.env.exampleする.envteminalまたは。

cp .env.example .env

2.

3.

https://riptutorial.com/ja/home 65

Page 82: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

.envファイルをき、データベース、メール、プッシャーなどをしますな3. php artisan migrate データベースがされている4. php artisan key:generate5. php artisan serve6.

サイトをするにはlocalhost8000にしてください7.

Laravel docs

Hello Worldの

Laravelでは、ページにアクセスしてデータをするのはです。すべてのページルートはapp/routes.php 。、いくつかのがありますが、しいルートをします。 app/routes.phpき、のコードをりけてください

Route::get('helloworld', function () { return '<h1>Hello World</h1>'; });

これはLaravelに、ブラウザでhttp://localhost/helloworldにアクセスするときにをし、されたをすようにします。

ビューとコントローラによるHello Worldの

えば "mylaravel.com"でくlaravelアプリケーションがあるとすると、URL

http://mylaravel.com/helloworldアクセスしたときにアプリケーションに "Hello World"メッセージがされます。これには、2つのファイルビューとコントローラのと、のファイルであるルーターのがまれます。

に、 helloview.blade.phpというのしいブレードビューファイルを "Hello World"できます。 app /

resources / viewsディレクトリにします

<h1>Hello, World</h1>

コントローラ

に、 "Hello World"でそのビューのをするコントローラをします。コマンドラインでをします。

$> cd your_laravel_project_root_directory $> php artisan make:controller HelloController

これは、しいコントローラHelloControllerあるクラスをむファイル

app/Http/Controllers/HelloController.php をするだけHelloController 。

そのしいファイルをし、したビューをするしいメソッドhelloをします。

public function hello()

https://riptutorial.com/ja/home 66

Page 83: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

{ return view('helloview'); }

viewの 'helloview'は、ろの ".blade.php"のないビューファイルのだけです。ラーヴェルはそれをつけるをっている。

に、 HelloControllerコントローラのhelloメソッドをびすと、メッセージがされます。しかし、それをhttp://mylaravel.com/helloworldへのびしにどのようにリンクさせますかのステップでは、ルーティング。

ルータ

のファイルapp/routes/web.php バージョンのlaravelバージョンのapp/Http/routes.php をき、のをします

Route::get('/helloworld', 'HelloController@hello');

これはたちのlaravelアプリケーションにっているになコマンドです "かがこのlaravelアプリケーションで '/ helloworld'にアクセスするためにGETをする、 HelloControllerコントローラでhelloをびしたをします。

オンラインでインストールガイドをむ https://riptutorial.com/ja/laravel/topic/2187/インストールガイド

https://riptutorial.com/ja/home 67

Page 84: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

24: エラーconfig/mail.phpにされていることをして、メールにアプリケーションをしてください

また、ENVがしくされていることをしてください。

このはガイドであり、です。にじて、ビューを、、スタイルをします。ニーズにわせてコードをします。たとえば、を.envファイルにします

Examples

エラーレポートメールをする

LaravelのはApp \ Exceptions \ Handler.phpによってされます

このファイルには、デフォルトで2つのがまれています。レポートレンダリング。たちはの

public function report(Exception $e)

レポートメソッドは、をするか、BugSnagのようなサービスにするためにされます。デフォルトでは、レポートメソッドは、がログにされるクラスにをします。ただし、にじてをすることはです。

に、このはにエラーをし、もしません。したがって、エラーにづいてをするビジネスロジックをできます。このでは、エラーをむメールをします。

public function report(Exception $e) { if ($e instanceof \Exception) { // Fetch the error information we would like to // send to the view for emailing $error['file'] = $e->getFile(); $error['code'] = $e->getCode(); $error['line'] = $e->getLine(); $error['message'] = $e->getMessage(); $error['trace'] = $e->getTrace(); // Only send email reports on production server if(ENV('APP_ENV') == "production"){ #1. Queue email for sending on "exceptions_emails" queue #2. Use the emails.exception_notif view shown below #3. Pass the error array to the view as variable $e Mail::queueOn('exception_emails', 'emails.exception_notif', ["e" => $error], function ($m) { $m->subject("Laravel Error"); $m->from(ENV("MAIL_FROM"), ENV("MAIL_NAME")); $m->to("[email protected]", "Webmaster"); }); }

https://riptutorial.com/ja/home 68

Page 85: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

} // Pass the error on to continue processing return parent::report($e); }

メールのビュー "emails.exception_notif"はのとおりです

<?php $action = (\Route::getCurrentRoute()) ? \Route::getCurrentRoute()->getActionName() : "n/a"; $path = (\Route::getCurrentRoute()) ? \Route::getCurrentRoute()->getPath() : "n/a"; $user = (\Auth::check()) ? \Auth::user()->name : 'no login'; ?> There was an error in your Laravel App<br /> <hr /> <table border="1" width="100%"> <tr><th >User:</th><td>{{ $user }}</td></tr> <tr><th >Message:</th><td>{{ $e['message'] }}</td></tr> <tr><th >Action:</th><td>{{ $action }}</td></tr> <tr><th >URI:</th><td>{{ $path }}</td></tr> <tr><th >Line:</th><td>{{ $e['line'] }}</td></tr> <tr><th >Code:</th><td>{{ $e['code'] }}</td></tr> </table>

アプリケーションをするModelNotFoundException

app \ Exceptions \ Handler.php

public function render($request, Exception $exception) { if ($exception instanceof ModelNotFoundException) { abort(404); } return parent::render($request, $exception); }

Laravelでスローされたを/できます。

オンラインでエラーをむ https://riptutorial.com/ja/laravel/topic/2858/エラー

https://riptutorial.com/ja/home 69

Page 86: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

25: カスタムヘルパー

カスタムヘルパーをすることで、スピードをさせることができます。そのようなヘルパーをくときにすべきことがいくつかあります。したがって、このチュートリアルです。

ちょっとした

サービスプロバイダが2びされたときのをぐために、をチェック function_exists にれました。

わりのは、 composer.jsonファイルからヘルパーファイルをすることです。 laravelフレームワークからロジックをコピーすることができます。

Examples

document.php

<?php if (!function_exists('document')) { function document($text = '') { return $text; } }

helpers.phpファイルをし、 app/Helpers/document.phpするとしましょう。あなたは1つのファイルにくのヘルパーをくことができますこれがLaravelのやりです、ですることもできます。

HelpersServiceProvider.php

に、サービスプロバイダをしましょう。 app/Providersにいてみましょう

<?php namespace App\Providers; class HelpersServiceProvider extends ServiceProvider { public function register() { require_once __DIR__ . '/../Helpers/document.php'; } }

のサービスプロバイダはヘルパーファイルをみみ、カスタムをにします。 providersのconfig/app.phpこのHelpersServiceProviderをしてください

https://riptutorial.com/ja/home 70

Page 87: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

'providers' => [ // [..] other providers App\Providers\HelpersServiceProvider::class, ]

つかいます

これで、document()コードのどこでも、たとえばブレードテンプレートでできます。このでは、としてけったのとじのみをします

<?php Route::get('document/{text}', function($text) { return document($text); });

はブラウザの/document/fooにきます php artisan serveまたはvaletしてください。これはfooをします。

オンラインでカスタムヘルパーをむ https://riptutorial.com/ja/laravel/topic/8347/カスタムヘルパー

https://riptutorial.com/ja/home 71

Page 88: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

26: キュー

キューをすると、バックグラウンドプロセスでするのにがかかるのビットをアプリケーションがすることができます。

Examples

ユースケース

たとえば、タスクをしたににメールをするは、メールをバックグラウンドでキューにれながら、ユーザーをすぐにのページにリダイレクトすることをおめします。メールのにのがかかることがあるため、のページのみみがされます。

もう1つのは、がをチェックアウトしたにシステムをすることです。 APIびしがするのをつのではなく、かかるかもしれませんが、すぐにユーザーをチェックアウトページにリダイレクトして、APIびしをバックグラウンドでちにれることができます。

キュードライバの

Laravelのキュードライバはconfig/queue.phpファイルからされています。キュードライバは、キューにれられたジョブのをし、ジョブがしたかしたかをし、そうするようにされているはジョブをするハンドラです。

Laravelは、そのままので、のキュードライバをサポートしています。

sync

またはは、のプロセスでキューにれられたジョブをするデフォルトのキュードライバです。このドライバをにすると、キューにれられたジョブがすぐにされるため、キューがになくなります。これは、ローカルまたはテストのにはですが、キューをすることによるパフォーマンスのがなくなるため、プロダクションではおめできません。

database

このドライバは、キューにれられたジョブをデータベースにします。このドライバをにするに、キューにされたジョブとしたジョブをするデータベーステーブルをするがあります。

php artisan queue:table php artisan migrate

sqs

https://riptutorial.com/ja/home 72

Page 89: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

このキュードライバはAmazonのSimple Queue Serviceをして、キューにれられたジョブをします。このジョブをにするに、のコンポーザパッケージをインストールするがありますaws/aws-sdk-php ~3.0

また、キューにされたジョブにをするの、Amazon SQSは15のしかサポートしないことにもしてください。

iron

このキュードライバは、 Ironをして、キューにれられたジョブをします。

redis

このキュードライバは、 Redisのインスタンスをして、キューにれられたジョブをします。このキュードライバをするに、Redisのコピーをし、のコンポーザをインストールするがあります predis/predis ~1.0

beanstalkd

このキュー・ドライバは、 Beanstalkのインスタンスをして、キューにれられたジョブをします。このキュードライバをするに、Beanstalkのコピーをし、のコンポーザをインストールするがあります pda/pheanstalk ~3.0

null

キュードライバとしてnullをすると、キューにれられたジョブはすべてされます。

オンラインでキューをむ https://riptutorial.com/ja/laravel/topic/2651/キュー

https://riptutorial.com/ja/home 73

Page 90: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

27: クロスドメインリクエスト

Examples

ラーベールでAPIのクロスドメインリクエストがなもあります。なヘッダーをして、クロスドメインをにさせるがあります。したがって、するヘッダーがでなければ、APIがになるようにするがあります。ヘッダーをするには、なヘッダーをしてをするlaravelにミドルウェアをするがあります。

CorsHeaders

<?php namespace laravel\Http\Middleware; class CorsHeaders { /** * This must be executed _before_ the controller action since _after_ middleware isn't executed when exceptions are thrown and caught by global handlers. * * @param $request * @param \Closure $next * @param string [$checkWhitelist] true or false Is a string b/c of the way the arguments are supplied. * @return mixed */ public function handle($request, \Closure $next, $checkWhitelist = 'true') { if ($checkWhitelist == 'true') { // Make sure the request origin domain matches one of ours before sending CORS response headers. $origin = $request->header('Origin'); $matches = []; preg_match('/^(https?:\/\/)?([a-zA-Z\d]+\.)*(?<domain>[a-zA-Z\d-\.]+\.[a-z]{2,10})$/', $origin, $matches); if (isset($matches['domain']) && in_array($matches['domain'], ['yoursite.com']) { header('Access-Control-Allow-Origin: ' . $origin); header('Access-Control-Expose-Headers: Location'); header('Access-Control-Allow-Credentials: true'); // If a preflight request comes then add appropriate headers if ($request->method() === 'OPTIONS') { header('Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS, DELETE, PATCH'); header('Access-Control-Allow-Headers: ' . $request->header('Access-Control-Request-Headers')); // 20 days header('Access-Control-Max-Age: 1728000'); } } } else {

https://riptutorial.com/ja/home 74

Page 92: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

28: コレクション$ collection = collect['Value1'、 'Value2'、 'Value3']; //キーのデフォルトは0,1,2、...、•

Illuminate\Support\Collectionは、データのをうためのかつなインターフェイスをします。たとえば、のレコードをするモデルクエリでは、 Illuminate\Support\Collectionインスタンスがされます。

コレクションにするのドキュメントについては、のドキュメントをここでつけることができます

Examples

コレクションをする

collect()ヘルパーをすると、のようなをすことでにしいコレクションインスタンスをできます。

$fruits = collect(['oranges', 'peaches', 'pears']);

ヘルパーをしたくないは、クラスをしてしいコレクションをできます。

$fruits = new Illuminate\Support\Collection(['oranges', 'peaches', 'pears']);

でべたように、モデルはデフォルトでCollectionインスタンスをしますが、にじてのコレクションをにできます。にがされていない、のCollectionがされます。

ここで、

コレクションからのアイテムをするには、 where()メソッドをします。

$data = [ ['name' => 'Taylor', 'coffee_drinker' => true], ['name' => 'Matt', 'coffee_drinker' => true] ]; $matt = collect($data)->where('name', 'Matt');

このコードは、が「Matt」のコレクションからすべてのアイテムをします。この、2ののみがされます。

ネスティングLaravelのほとんどのメソッドとにwhere()はネストされたのもサポートしています。のを2のをしてしましょう

https://riptutorial.com/ja/home 76

Page 93: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$data = [ ['name' => 'Taylor', 'coffee_drinker' => ['at_work' => true, 'at_home' => true]], ['name' => 'Matt', 'coffee_drinker' => ['at_work' => true, 'at_home' => false]] ]; $coffeeDrinkerAtHome = collect($data)->where('coffee_drinker.at_home', true);

これはがでコーヒーをむので、テイラーだけをすでしょう。ごのように、ネスティングはドットをしてサポートされています。

ではなくオブジェクトのCollectionをするは、 where()もしてフィルタリングできます。コレクションは、に、すべてのましいプロパティをけろうとします。

5.3

Laravel 5.3、 where()メソッドはデフォルトでをやかにしようとします。つまり、 (int)1すると、 '1'をむすべてのエントリもにされます。そのがにらないは、 whereStrict()メソッドをできます。

Getをしてをするか、デフォルトをす

あなたは、にするをつけるがあるにすることがよくあります。

のでは、に3つのなるロケールがあり、するびしコードがりてられています。たちはロケールをできるようにしたいが、そのわりにするびしコードをする。のパラメータがつからない、 getの2のパラメータはデフォルトのパラメータです。

function lookupCallingCode($locale) { return collect([ 'de_DE' => 49, 'en_GB' => 44, 'en_US' => 1, ])->get($locale, 44); }

のでは、をうことができます

lookupCallingCode('de_DE'); // Will return 49 lookupCallingCode('sv_SE'); // Will return 44

コールバックをデフォルトとしてすことさえできます。されたキーがしない、コールバックのがされます。

return collect([ 'de_DE' => 49, 'en_GB' => 44, 'en_US' => 1, ])->get($locale, function() { return 44;

https://riptutorial.com/ja/home 77

Page 94: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

});

Containsをして、コレクションがのをたすかどうかをチェックします。

なは、すべてがのをたすがあるアイテムのコレクションをつことです。のでは、プランの2つのアイテムをしました。このダイエットにながまれていないことをしたいとえています。

// First we create a collection $diet = collect([ ['name' => 'Banana', 'calories' => '89'], ['name' => 'Chocolate', 'calories' => '546'] ]); // Then we check the collection for items with more than 100 calories $isUnhealthy = $diet->contains(function ($i, $snack) { return $snack["calories"] >= 100; });

の、 $isUnhealthyはチョコレートがをたすのでtrueにされ、したがってはではありません。

のをコレクションからするためにPluckをする

あなたはしばしば、データのだけにがあるデータのまりをつけるでしょう。

のでは、イベントののリストをしました。ツアーガイドになリストをしたいとえています。

// First we collect the participants $participants = collect([ ['name' => 'John', 'age' => 55], ['name' => 'Melissa', 'age' => 18], ['name' => 'Bob', 'age' => 43], ['name' => 'Sara', 'age' => 18], ]); // Then we ask the collection to fetch all the names $namesList = $partcipants->pluck('name') // ['John', 'Melissa', 'Bob', 'Sara'];

オブジェクトのコレクションやドットのネストされた/オブジェクトのには、 pluckをすることもできます。

$users = User::all(); // Returns Eloquent Collection of all users $usernames = $users->pluck('username'); // Collection contains only user names $users->load('profile'); // Load a relationship for all models in collection // Using dot notation, we can traverse nested properties $names = $users->pluck('profile.first_name'); // Get all first names from all user profiles

Mapをしてコレクションのをする

https://riptutorial.com/ja/home 78

Page 95: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

くの、のデータをしてのをするがあります。

のでは、がされたのコレクションをしました。しかし、たちはむしろすでにきされているのリストをっています。

$books = [ ['title' => 'The Pragmatic Programmer', 'price' => 20, 'discount' => 0.5], ['title' => 'Continuous Delivery', 'price' => 25, 'discount' => 0.1], ['title' => 'The Clean Coder', 'price' => 10, 'discount' => 0.75], ]; $discountedItems = collect($books)->map(function ($book) { return ['title' => $book["title"], 'price' => $book["price"] * $book["discount"]]; }); //[ // ['title' => 'The Pragmatic Programmer', 'price' => 10], // ['title' => 'Continuous Delivery', 'price' => 12.5], // ['title' => 'The Clean Coder', 'price' => 5], //]

これはまた、キーをするためにすることもできます。これは、キーtitleをなにするnameにしたいとします。

コレクションの、、またはをにする

また、コレクションをすると、なをにうことができます。

$books = [ ['title' => 'The Pragmatic Programmer', 'price' => 20], ['title' => 'Continuous Delivery', 'price' => 30], ['title' => 'The Clean Coder', 'price' => 10], ] $min = collect($books)->min('price'); // 10 $max = collect($books)->max('price'); // 30 $avg = collect($books)->avg('price'); // 20 $sum = collect($books)->sum('price'); // 60

コレクションのべえ

コレクションをソートするには、いくつかのがあります。

ソートsortメソッドは、コレクションをソートします。

$collection = collect([5, 3, 1, 2, 4]); $sorted = $collection->sort();

https://riptutorial.com/ja/home 79

Page 96: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

echo $sorted->values()->all(); returns : [1, 2, 3, 4, 5]

sortメソッドをすると、のアルゴリズムでカスタムコールバックをすこともできます。フードのでソートはusortソートをします。

$collection = $collection->sort(function ($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; });

びえsortByメソッドは、コレクションをされたキーでソートします。

$collection = collect([ ['name' => 'Desk', 'price' => 200], ['name' => 'Chair', 'price' => 100], ['name' => 'Bookcase', 'price' => 150], ]); $sorted = $collection->sortBy('price'); echo $sorted->values()->all(); returns: [ ['name' => 'Chair', 'price' => 100], ['name' => 'Bookcase', 'price' => 150], ['name' => 'Desk', 'price' => 200], ]

sortByメソッドをすると、をソートするためにドットをしてよりいキーにアクセスできます。

$collection = collect([ ["id"=>1,"product"=>['name' => 'Desk', 'price' => 200]], ["id"=>2, "product"=>['name' => 'Chair', 'price' => 100]], ["id"=>3, "product"=>['name' => 'Bookcase', 'price' => 150]], ]); $sorted = $collection->sortBy("product.price")->toArray(); return: [ ["id"=>2, "product"=>['name' => 'Chair', 'price' => 100]], ["id"=>3, "product"=>['name' => 'Bookcase', 'price' => 150]], ["id"=>1,"product"=>['name' => 'Desk', 'price' => 200]], ]

SortByDesc

https://riptutorial.com/ja/home 80

Page 97: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

このメソッドは、 sortByメソッドとじシグネチャをちますが、のでコレクションをソートします。

reduceをすると、

reduceメソッドは、コレクションをのにらし、のをのにします。 reduceメソッドをしてください。

reduceメソッドは、アイテムをコレクションでループし、のりしにしいをします。のからのは、のパラメータのでは、 $carryとしてされますにされます。

このは、きなデータセットにしてくのをうことができます。たとえば、のでは、データのをします。

$student = [ ['class' => 'Math', 'score' => 60], ['class' => 'English', 'score' => 61], ['class' => 'Chemistry', 'score' => 50], ['class' => 'Physics', 'score' => 49], ];

のの

$sum = collect($student) ->reduce(function($carry, $item){ return $carry + $item["score"]; }, 0);

220

$carryはののです。•2のパラメータは、1のりしでの$ carryのデフォルトです。この、デフォルトは0です•

すべてのが50の、をす

$isPass = collect($student) ->reduce(function($carry, $item){ return $carry && $item["score"] >= 50; }, true);

false

$ carryのデフォルトはtrueです•

すべてのスコアが50よりきい、はtrueをします。 50のはfalseをします。•

いずれかのスコアが50の、をにする

$isFail = collect($student) ->reduce(function($carry, $item){ return $carry || $item["score"] < 50; }, false);

https://riptutorial.com/ja/home 81

Page 98: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

true

$ carryのデフォルトはfalseです。•

スコアが50のはtrueをします。すべてのスコアが50よりきいはfalseをします。•

をす

$highestSubject = collect($student) ->reduce(function($carry, $item){ return $carry === null || $item["score"] > $carry["score"] ? $item : $carry; });

[ "subject" => "English", "score" => 61 ]

この、2のパラメータはされません。•

$ carryのデフォルトはnullなので、たちはきでそれをチェックします。•

マクロをってコレクションをする

macro()をすると、 Illuminate\Support\Collectionオブジェクトにしいをできます

Collection::macro("macro_name", function ($parameters) { // Your macro });

えば

Collection::macro('uppercase', function () { return $this->map(function ($item) { return strtoupper($item); }); }); collect(["hello", "world"])->uppercase();

["HELLO", "WORLD"]

CollectionオブジェクトはArrayAccessおよびIteratorAggregateインターフェイスをArrayAccessし、のようにできます。

アクセスコレクション

$collection = collect([1, 2, 3]); $result = $collection[1];

2

しいをりてる

https://riptutorial.com/ja/home 82

Page 99: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$collection = collect([1, 2, 3]); $collection[] = 4;

$collectionは[1, 2, 3, 4]

ループコレクション

$collection = collect(["a" => "one", "b" => "two"]); $result = ""; foreach($collection as $key => $value){ $result .= "(".$key.": ".$value.") "; }

$resultは(a: one) (b: two)

からコレクションへの

コレクションをネイティブのPHPにするには、をします。

$array = $collection->all(); //or $array = $collection->toArray()

をコレクションにするには、をします。

$collection = collect($array);

によるコレクションの

コレクションは、 array_map($callback)ような、にをとするによってされた、しくされないのオブジェクトであることにしてください。

コレクションをにするか、またはであればCollectionクラスがするメソッドをしてください。 $collection->map($callback)

オンラインでコレクションをむ https://riptutorial.com/ja/laravel/topic/2358/コレクション

https://riptutorial.com/ja/home 83

Page 100: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

29: コントローラ

リクエストロジックのすべてをルートファイルのClosuresとしてするのではなく、Controllerクラスをしてこのるいをすることができます。コントローラは、するリクエストロジックを1つのクラスにまとめることができます。コントローラはデフォルトでapp/Http/Controllersディレクトリにされます。

Examples

なコントローラ

<?php namespace App\Http\Controllers; use App\User; use App\Http\Controllers\Controller; class UserController extends Controller { /** * Show the profile for the given user. * * @param int $id * @return Response */ public function show($id) { return view('user.profile', ['user' => User::findOrFail($id)]); } }

このコントローラアクションへのルートをのようにすることができます

Route::get('user/{id}', 'UserController@show');

リクエストがされたルートURIとすると、 UserControllerクラスのshowメソッドがされます。もちろん、ルートパラメータもメソッドにされます。

コントローラミドルウェア

ミドルウェアは、ルートファイルのコントローラのルートにりてることができます。

Route::get('profile', 'UserController@show')->middleware('auth');

ただし、コントローラのコンストラクタでミドルウェアをするほうがです。コントローラのコンストラクタのミドルウェアメソッドをすると、ミドルウェアをコントローラのアクションににり

https://riptutorial.com/ja/home 84

Page 101: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

てることができます。

class UserController extends Controller { /** * Instantiate a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); $this->middleware('log')->only('index'); $this->middleware('subscribed')->except('store'); } }

リソース・コントローラ

Laravelのリソースルーティングは、な "CRUD"ルートを1のコードでコントローラにりてます。たとえば、アプリケーションによってされた ""のすべてのHTTPをするコントローラをすることができます。 make:controller Artisanコマンドをして、このようなコントローラをくすることができます

php artisan make:controller PhotoController --resource

このコマンドは、 app/Http/Controllers/PhotoController.phpます。コントローラには、なリソースのためのメソッドがまれます。

リソース・コントローラーのの

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PhotoController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. *

https://riptutorial.com/ja/home 85

Page 102: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

* @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { //

https://riptutorial.com/ja/home 86

Page 103: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

} }

リソースコントローラのは、ののメソッドをしています。

に、コントローラへのなルートをすることができます。

Route::resource('photos', 'PhotoController');

このルートは、リソースのさまざまなアクションをするのルートをします。されたコントローラーには、HTTPとするURIをするをむ、これらのアクションごとにスタブされたメソッドがにされています。

リソース・コントローラーによってされるアクション

URI アクション ルート

する /photos photos.index

する /photos/create する photos.create

/photos photos.store

する /photos/{photo} ショー photos.show

する /photos/{photo}/edit photos.edit

PUT / PATCH /photos/{photo} photos.update

/photos/{photo} する photos.destroy

オンラインでコントローラをむ https://riptutorial.com/ja/laravel/topic/10604/コントローラ

https://riptutorial.com/ja/home 87

Page 104: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

30: サービス

Examples

Laravelは、サービスとばれるさまざまなクラスへのアクセスをします。のサービスはすぐにできますが、あなたですることができます。

サービスは、コントローラのようなアプリケーションののファイルでできます。サービスOurServiceがをすgetNumber()メソッドをしているとしましょう

class SomeController extends Controller { public function getRandomNumber() { return app(OurService::class)->getNumber(); } }

サービスをするには、しいクラスをするがあります。

# app/Services/OurService/OurService.php <?php namespace App\Services\OurService; class OurService { public function getNumber() { return rand(); } }

では、すでにこのサービスをコントローラでできますが、になるたびにしいオブジェクトをインスタンスするがあります。

class SomeController extends Controller { public function getRandomNumber() { $service = new OurService(); return $service->getNumber(); } public function getOtherRandomNumber() { $service = new OurService(); return $service->getNumber(); }

https://riptutorial.com/ja/home 88

Page 105: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

}

そのため、 サービスコンテナにサービスをするのがのステップです。サービスをサービスコンテナにすると、なときにいつでもしいオブジェクトをするはありません。

サービスコンテナにサービスをするには、 サービスプロバイダをするがあります 。このサービスプロバイダは、

サービスをメソッドでサービスコンテナにする 1.

ブートをしてサービスにのサービスをします2.

サービスプロバイダは、クラスIlluminate\Support\ServiceProviderしたクラスです。サービスをService Containerにするには、 register()メソッドをするがあります。

# app/Services/OurService/OurServiceServiceProvider.php <?php namespace App\Services\OurService; use Illuminate\Support\ServiceProvider; class OurServiceServiceProvider extends ServiceProvider { public function register() { $this->app->singleton('OurService', function($app) { return new OurService(); }); } }

すべてのサービスプロバイダはconfig/app.phpにされます。サービスプロバイダをこのにするがあります

return [ ... 'providers' => [ ... App\Services\OurService\OurServiceServiceProvider::class, ... ], ... ];

これでコントローラでサービスにアクセスできるようになりました。 3つの

1.

https://riptutorial.com/ja/home 89

Page 106: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

<?php namespace App\Http\Controllers; use App\Services\OurService\OurService; class SomeController extends Controller { public function __construct(OurService $our_service) { dd($our_service->getNumber()); } }

app()ヘルパーのアクセス2.

<?php namespace App\Http\Controllers; use App\Services\OurService\OurService; class SomeController extends Controller { public function getRandomNumber() { return app('OurService')->getNumber(); } }

Laravelは、すべてのプロジェクトででき、サービスをできるFacades、のクラスをします。あなたのサービスにもっとにアクセスするために、ファサードをすることができます

<?php namespace App\Http\Controllers; use Randomisator; class SomeController extends Controller { public function getRandomNumber() { return Randomisator::getNumber(); } }

しいファサードをするには、 Illuminate\Support\Facades\Facadeするしいクラスをするがあります。このクラスは、 getFacadeAccessor()メソッドをし、 サービスプロバイダによってされたサービスのをすがあります 。

# app/Services/OurService/OurServiceFacade.php <?php namespace App\Services\OurService; use Illuminate\Support\Facades\Facade;

https://riptutorial.com/ja/home 90

Page 107: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

class OurServiceFacade extends Facade { protected static function getFacadeAccessor() { return 'OurService'; } }

あなたはファサードをconfig/app.phpにするもあります

return [ ... 'aliases' => [ .... 'Randomisator' => App\Services\OurService\OurServiceFacade::class, ], ];

Facadeはプロジェクトのどこにでもアクセスできます。

ビューからサービスにアクセスするには、ヘルパーをします。 Laravelには、 auth()やview()のような、いくつかのヘルパーがされています。ヘルパーをするには、しいファイルをします。

# app/Services/OurService/helpers.php if (! function_exists('randomisator')) { /** * Get the available OurService instance. * * @return \App\ElMatella\FacebookLaravelSdk */ function randomisator() { return app('OurService'); } }

このファイルをするがありますが、 composer.jsonファイルにするがあります

{ ... "autoload": { "files": [ "app/Services/OurService/helpers.php" ], ... }

https://riptutorial.com/ja/home 91

Page 108: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

}

このヘルパーをビューでできるようになりました。

<h1>Here is a random number: {{ randomisator()->getNumber() }}</h1>

オンラインでサービスをむ https://riptutorial.com/ja/laravel/topic/1907/サービス

https://riptutorial.com/ja/home 92

Page 109: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

31: サービス

Examples

インプリメンテーションへのインタフェースのバインド

サービスプロバイダregisterメソッドでは、インタフェースをにバインドできます。

public function register() { App::bind( UserRepositoryInterface::class, EloquentUserRepository::class ); }

は、アプリケーションがUserRepositoryInterfaceインスタンスをとするUserRepositoryInterface 、LaravelはにEloquentUserRepositoryしいインスタンスをします

//this will get back an instance of EloquentUserRepository $repo = App::make( UserRepositoryInterface:class );

インスタンスのバインド

サービスコンテナをレジストリとしてすると、オブジェクトのインスタンスをバインドし、なときにすことができます。

// Create an instance. $john = new User('John'); // Bind it to the service container. App::instance('the-user', $john); // ...somewhere and/or in another class... // Get back the instance $john = App::make('the-user');

サービスコンテナへのシングルトンのバインド

クラスをシングルトンとしてバインドすることができます

public function register() { App::singleton('my-database', function() { return new Database(); }); }

このようにして、めて'my-database'インスタンスがサービスコンテナにされると、しいインスタ

https://riptutorial.com/ja/home 93

Page 110: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ンスがされます。このクラスのすべてのしたは、にされたインスタンスをします。

//a new instance of Database is created $db = App::make('my-database'); //the same instance created before is returned $anotherDb = App::make('my-database');

サービスコンテナがなアプリケーションオブジェクトです。これは、サービスプロバイダのバインディングをすることによって、アプリケーションのコンテナおよびレジストリとしてできます

サービスプロバイダは、アプリケーションをじてサービスクラスをし、そのをブートストラップし、インプリメンテーションにインターフェイスをバインドするをするクラスです

サービスは、1つまたはのロジックタスクをまとめてラップするクラスです。

サービスコンテナをコンテナとしてする

をつオブジェクトのプロセスをアプリケーションの1つのポイントにバインドすることによって、サービスコンテナをコンテナとしてできます

PdfCreatorのに2つのオブジェクトがするがあるとしましょう。 PdfCreatorインスタンスをビルドするがあるPdfCreator 、これらのをcheコンストラクタにすがあります。サービスコンテナをDIC

としてすることによって、バインディングでPdfCreatorのをし、サービスコンテナからなをします。

App:bind('pdf-creator', function($app) { // Get the needed dependencies from the service container. $pdfRender = $app->make('pdf-render'); $templateManager = $app->make('template-manager'); // Create the instance passing the needed dependencies. return new PdfCreator( $pdfRender, $templateManager ); });

に、たちのアプリのあらゆるで、しいPdfCreatorをするPdfCreator 、たちはにうことができます

$pdfCreator = App::make('pdf-creator');

また、Serviceコンテナは、なとともに、しいインスタンスをします。

オンラインでサービスをむ https://riptutorial.com/ja/laravel/topic/1908/サービス

https://riptutorial.com/ja/home 94

Page 111: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

32: シードデータベースのシードでは、データ、なテストデータをデータベースにできます。デフォルトでは、 database/seedsにDatabaseSeederクラスがありdatabase/seeds 。

のシーダーは

php artisan db:seed

または、のクラスだけをしたい

php artisan db:seed --class=TestSeederClass

すべてののコマンドとに、 APIのドキュメントにあるさまざまなメソッドにアクセスできます

Examples

データの

データをするはいくつかあります。

DBファサードの

public function run() { DB::table('users') ->insert([ 'name' => 'Taylor', 'age' => 21 ]); }

モデルをインスタンスする

public function run() { $user = new User; $user->name = 'Taylor'; $user->save(); }

createメソッドの

public function run()

https://riptutorial.com/ja/home 95

Page 112: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

{ User::create([ 'name' => 'Taylor', 'age' => 21 ]); }

をして

public function run() { factory(App\User::class, 10)->create(); }

いデータのシードとインクリメントのリセット

public function run() { DB::table('users')->delete(); DB::unprepared('ALTER TABLE users AUTO_INCREMENT=1;'); factory(App\User::class, 200)->create(); }

データの/のについては、 のをしてください。

のシーダーにする

DatabaseSeederクラスで、のシーダーをびすことができます

$this->call(TestSeeder::class)

これにより、シーダーをにつけることができるに1つのファイルをできます。キーのにするコールのにするがあることにしてください。まだしないテーブルはできません。

シーダーの

シーダーをするには、 make:seeder Artisanコマンドをします。されたすべてのシーダーは、 database/seedsディレクトリーにされdatabase/seeds 。

$ php artisan make:seeder MoviesTableSeeder

されたシーダーには、1つのメソッドがまれrun 。このでデータベースにデータをすることができます。

<?php use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model;

https://riptutorial.com/ja/home 96

Page 113: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

class MoviesTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { App\Movie::create([ 'name' => 'A New Hope', 'year' => '1977' ]); App\Movie::create([ 'name' => 'The Empire Strikes Back', 'year' => '1980' ]); } }

には、 DatabaseSeederクラスのすべてのシーダーをびすがあります。

シーダーのがわったら、 db:seedコマンドをします。これにより、 DatabaseSeederのrunがrunます。

$ php artisan db:seed

また、の--classクラスをして、 - --classオプションをしてにするようにすることもできます。

$ php artisan db:seed --class=UserSeeder

すべてのをロールバックしてしてからするは、のようにします。

$ php artisan migrate:refresh --seed

migrate:refresh --seedコマンドは、の3つのコマンドのショートカットです。

$ php artisan migrate:reset # rollback all migrations $ php artisan migrate # run migrations $ php artisan db:seed # run seeders

にしたシードにをえずにデータベースをシードすることができます。こののために、シーダーでfirstOrCreateをすることができます

EmployeeType::firstOrCreate([ 'type' => 'manager', ]);

https://riptutorial.com/ja/home 97

Page 114: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

に、データベースをシードできます。

php artisan db:seed

で、のタイプのをするは、そのしいファイルをじファイルにするだけです。

EmployeeType::firstOrCreate([ 'type' => 'manager', ]); EmployeeType::firstOrCreate([ 'type' => 'secretary', ]);

また、なくデータベースをシードします。

php artisan db:seed

のびしで、レコードをしているのにもしていないことにしてください。

オンラインでシードをむ https://riptutorial.com/ja/laravel/topic/3272/シード

https://riptutorial.com/ja/home 98

Page 115: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

33: ストレージのアクセス

Laravelは、Webサーバーユーザーのためにきみなフォルダがです。

Examples

また、 serverのstorageファイルにしてしいアクセスをするがありserver 。したがって、のようにストレージディレクトリにきみをえるがあります。

$ chmod -R 777 ./storage ./bootstrap

またはすることができます

$ sudo chmod -R 777 ./storage ./bootstrap

ウィンドウの

きみなアクセスをつそのコンピュータのユーザーであることをしてください

xampp\htdocs\laravel\app\storage needs to be writable

パーミッションをするのは、Webサーバーがファイルをすることです。

sudo chown -R www-data:www-data /path/to/your/root/directory

オンラインでストレージのアクセスをむ https://riptutorial.com/ja/laravel/topic/9797/ストレージのアクセス

https://riptutorial.com/ja/home 99

Page 116: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

34: タスクスケジューリング

Examples

タスクの

ArtisanをしてLaravelでタスクコンソールコマンドをすることができます。あなたのコマンドラインから

php artisan make:console MyTaskName

これにより、 app / Console / Commands / MyTaskName.phpにファイルがされます。それはのようになります

<?php namespace App\Console\Commands; use Illuminate\Console\Command; class MyTaskName extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'command:name'; /** * The console command description. * * @var string */ protected $description = 'Command description'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() {

https://riptutorial.com/ja/home 100

Page 117: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

// } }

こののなはのとおりです。

$signatureプロパティは、あなたのコマンドをするものです。 Artisanをしてコマンドラインでphp artisan command:nameをすると、このコマンドをですることができますphp artisan

command:name command:nameコマンドの$signatureします

$descriptionプロパティは、コマンドがになったときに、そのコマンドのにあるArtisanのヘルプ/のです。

handle()メソッドは、コマンドのコードをするです。•

に、あなたのタスクはArtisanをじてコマンドラインでできるようになります。 protected $signature = 'command:name';このクラスのプロパティは、それをするためにするものです。

タスクをにする

Artisanとアプリケーションには、 app / Console / Kernel.phpファイルでタスクをできるようにすることができます。

Kernelクラスには$commandsというのがまれているため、アプリケーションでコマンドをできるようになります。

Artisanとアプリケーションでできるように、このにコマンドをします。

<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ Commands\Inspire::class, Commands\MyTaskName::class // This line makes MyTaskName available ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) {

https://riptutorial.com/ja/home 101

Page 118: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

} }

これがしたら、Artisanをしてコマンドラインからコマンドにアクセスできるようになりました。コマンドの$signatureプロパティがmy:taskされmy:taskいるとすると、のコマンドをしてタスクをできます。

php artisan my:task

タスクのスケジューリング

アプリケーションでコマンドをできるようになったら、Laravelをして、CRONとじようにあらかじめされたでするようスケジュールできます。

App / Console / Kernel.phpファイルには、タスクをスケジュールするためにできるscheduleがあります。

<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ Commands\Inspire::class, Commands\MyTaskName::class ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { $schedule->command('my:task')->everyMinute(); // $schedule->command('my:task')->everyFiveMinutes(); // $schedule->command('my:task')->daily(); // $schedule->command('my:task')->monthly(); // $schedule->command('my:task')->sundays(); } }

あなたのタスクの$signatureがmy:taskとすると、 Schedule $scheduleオブジェクトをしてのように

https://riptutorial.com/ja/home 102

Page 119: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

スケジュールすることができます。 Laravelには、にコメントアウトされているように、コマンドをスケジュールするためのさまざまながされています。

するスケジューラの

スケジューラはのコマンドをしてできます。

php artisan schedule:run

スケジューラは、しくするためにするがあります。これをするには、バックグラウンドでスケジューラをするのでcronジョブをします。

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

オンラインでタスクスケジューリングをむ https://riptutorial.com/ja/laravel/topic/4026/タスクスケジューリング

https://riptutorial.com/ja/home 103

Page 120: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

35: ディレクトリ

Examples

デフォルトのアプリディレクトリをする

あなたのアプリディレクトリのをのものにしたいというユースケースがあります。 Laravel4では、をするだけで、Laravel5でうことができます。

このでは、 appディレクトリのをsrcします。

オーバーライドアプリケーションクラス

ディレクトリappはコアApplicationクラスにハードコードされているため、オーバーライドするがあります。しいファイルApplication.phpします。はsrcディレクトリたちはappときえるものにのものをしておくがきですが、のにくことができます。

オーバーライドされたクラスのはのとおりです。のがなは、srcをのものにしてください。

namespace App; class Application extends \Illuminate\Foundation\Application { /** * @inheritdoc */ public function path($path = '') { return $this->basePath . DIRECTORY_SEPARATOR . 'src' . ($path ? DIRECTORY_SEPARATOR . $path : $path); } }

ファイルをします。たちはそれでわった。

しいクラスをびす

bootstrap/app.php 、

$app = new Illuminate\Foundation\Application( realpath(__DIR__.'/../') );

たちはこれをこれにきえます

$app = new App\Application( realpath(__DIR__.'/../')

https://riptutorial.com/ja/home 104

Page 121: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

);

composer.jsonファイルをき、しいにわせてオートローディングをしてください

"psr-4": { "App\\": "src/" }

に、コマンドラインでcomposer dump-autoloadをすると、 srcディレクトリからアプリケーションがされます。

Controllersディレクトリをする

たちがとするControllersディレクトリをしたいは

なにあるデフォルトのControllersディレクトリをおよび/またはをします。たとえば、 app/Http/Controllersからapp/Controllers

1.

Controllersフォルダのファイルのすべてのネームスペースをし、PSR-4のものをして、しいパスにうようにします。

2.

routes.phpファイルにされているをapp\Providers\RouteServiceProvider.phpをしてし、これをします。

3.

protected $namespace = 'App\Http\Controllers';

これに

protected $namespace = 'App\Controllers';

オンラインでディレクトリをむ https://riptutorial.com/ja/laravel/topic/3153/ディレクトリ

https://riptutorial.com/ja/home 105

Page 122: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

36: データベース

Examples

のデータベース

Laravelはのデータベースでのをにします。のデータベースにしてさせるがあるは、にしてください。

にじて、じアプリケーションでなるタイプのデータベースをすることもできます。

デフォルトの config/database.phpでは、のびしをることができます

'default' => env('DB_CONNECTION', 'mysql'),

このはのmysqlします

'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => database_path('database.sqlite'), 'prefix' => '', ], 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ], ],

のコードやコマンドでデータベースのをしなかった、Laravelはデフォルトのデータベースをします。ただし、のデータベースでは、デフォルトのをしても、したデータベースのどこにいてもよりいができます。

ファイル

マイグレーションファイルでは、のデータベースのは、をできます。

Schema::create("table",function(Blueprint $table){ $table->increments('id');

https://riptutorial.com/ja/home 106

Page 123: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

});

のデータベースでは、 connection()メソッドをして、するデータベースをLaravelにえます。

Schema::connection("sqlite")->create("table",function(Blueprint $table){ $table->increments('id'); });

のデータベースをするは、のコマンドをします。

php artisan migrate

ただし、のデータベースの、どのデータベースがデータをしているかをするがよいでしょう。のコマンドをします。

php artisan migrate:install --database=sqlite

このコマンドは、ターゲットデータベースにテーブルをインストールしてをします。

php artisan migrate --database=sqlite

このコマンドは、をし、データをターゲットデータベースにします

php artisan migrate:rollback --database=sqlite

このコマンドは、をロールバックし、データをターゲットデータベースにします

Eloquent Model

Eloquentをしてデータベースをするには、 $connectionプロパティをするがあります。

namespace App\Model\Sqlite; class Table extends Model { protected $table="table"; protected $connection = 'sqlite'; }

Eloquentをしての2のデータベースをするには

namespace App\Model\MySql; class Table extends Model { protected $table="table"; protected $connection = 'mysql'; }

https://riptutorial.com/ja/home 107

Page 124: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Laravelは、 config/database.phpされたされたをするために、モデルでされた$connectionプロパティをしconfig/database.php 。 $connectionプロパティがモデルでされていない、デフォルトがされます。

static onメソッドをしてのをすることもできます。

// Using the sqlite connection Table::on('sqlite')->select(...)->get() // Using the mysql connection Table::on('mysql')->select(...)->get()

データベース/クエリビルダ

クエリビルダをしてのをすることもできます。

// Using the sqlite connection DB::connection('sqlite')->table('table')->select(...)->get() // Using the mysql connection DB::connection('mysql')->table('table')->select(...)->get()

テスト

LaravelはデータベースコードをテストするためにseeInDatabase($table,$fielsArray,$connection)をします。ユニットテストファイルでは、のようにするがあります

$this ->json( 'GET', 'result1/2015-05-08/2015-08-08/a/123' ) ->seeInDatabase("log", ["field"=>"value"], 'sqlite');

このようにして、Laravelはテストするデータベースをします。

テストにおけるデータベーストランザクション

Laravelは、テストにデータベースがすべてのをロールバックできるようにします。のデータベースをテストするには、 $connectionsToTransactプロパティをするがあります

use Illuminate\Foundation\Testing\DatabaseMigrations; class ExampleTest extends TestCase { use DatabaseTransactions; $connectionsToTransact =["mysql","sqlite"] //tell Laravel which database need to rollBack public function testExampleIndex() { $this->visit('/action/parameter') ->see('items'); }

https://riptutorial.com/ja/home 108

Page 125: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

}

オンラインでデータベースをむ https://riptutorial.com/ja/laravel/topic/1093/データベース

https://riptutorial.com/ja/home 109

Page 126: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

37: データベースシード

Examples

シーダーをかす

しいSeederをDatabaseSeederクラスにすることができます。

/** * Run the database seeds. * * @return void */ public function run() { $this->call(UserTableSeeder::class); }

データベースシーダーをするには、Artisanコマンドをします

php artisan db:seed

これにより、DatabaseSeederクラスがされます。 --class=オプションをして、するシーダーをですることもできます。

* Seederクラスがつからないは、composer dumpautoloadをするがあります。これは、artisanコマンドをするわりにでシーダークラスをするにします。

シードの

データベースシードは、/ database / seedsディレクトリにされます。アーティザンコマンドをしてシードをできます。

php artisan make:seed UserTableSeeder

または、 Illuminate\Database\Seederをするしいクラスをすることもできます。このクラスは、 run()というのパブリックでなければなりません。

シーダーをしたデータの

シーダーでモデルをできます。

use DB; use App\Models\User; class UserTableSeeder extends Illuminate\Database\Seeder{

https://riptutorial.com/ja/home 110

Page 127: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

public function run(){ # Remove all existing entrie DB::table('users')->delete() ; User::create([ 'name' => 'Admin', 'email' => '[email protected]', 'password' => Hash::make('password') ]); } }

モデルファクトリでデータをする

でモデルファクトリをしたいがあります。これにより、3のしいユーザーがされます。

use App\Models\User; class UserTableSeeder extends Illuminate\Database\Seeder{ public function run(){ factory(User::class)->times(3)->create(); } }

えば、シードののフィールドをパスワードのようにすることもできます。これにより、じパスワードをつ3のユーザーがされます。

factory(User::class)->times(3)->create(['password' => '123456']);

MySQLダンプでシードする

シードをするのにいます。このでは、MySQL Dumpをしてプロジェクトデータベースにテーブルをシードします。シードするにテーブルをするがあります。

<?php use Illuminate\Database\Seeder; class UserTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $sql = file_get_contents(database_path() . '/seeds/users.sql'); DB::statement($sql); }

https://riptutorial.com/ja/home 111

Page 128: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

}

たちの$ sqlはusers.sqlダンプのになるでしょう。ダンプにはINSERT INTOがです。ダンプをするはあなたです。のでは、プロジェクトディレクトリ\database\seedsされてい\database\seeds 。 laravelのヘルパーdatabase_path()をし、ダンプのディレクトリとファイルをします。

INSERT INTO `users` (`id`, `name`, `email`, `password`, `remember_token`, `created_at`, `updated_at`) VALUES (1, 'Jane', '[email protected]', 'superSecret', NULL, '2016-07-21 00:00:00', '2016-07-21 00:00:00'), (2, 'John', '[email protected]', 'sup3rS3cr3t', NULL, '2016-07-21 00:00:00', '2016-07-21 00:00:00');

DB::statement($sql)は、Seederがされるとをします。のとに、 UserTableSeederはUserTableSeederによってされたDatabaseSeederクラスにくことができます

<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { $this->call(UserTableSeeder::class); } }

プロジェクトディレクトリphp artisan db:seed CLIからします。あるいは、 php artisan db:seed --class=UsersTableSeederをってのクラスにしてphp artisan db:seed --class=UsersTableSeederをすることもできます

fakerおよびModelFactoriesをしてをする

1なな

データベースアプリケーションでは、テストやデモので、システムにあらかじめデータをみむがあります。

このようなデータをするには、まずシーダークラスをします

ProductTableSeeder

use Faker\Factory as Faker; use App\Product; class ProductTableSeeder extends DatabaseSeeder {

https://riptutorial.com/ja/home 112

Page 129: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

public function run() { $faker = $this->getFaker(); for ($i = 0; $i < 10; $i++) { $name = $faker->word; $image = $faker->imageUrl; Modelname::create([ 'name' => $name, 'image' => $image, ]); } } }

シーダークラスをできるようにするには、したいシーダーのをすだけで、DatabaseSeederクラスからびすことができます。

Illuminate \ Database \ Seederをします。

class DatabaseSeeder extends Seeder { protected $faker; public function getFaker() { if (empty($this->faker)) { $faker = Faker\Factory::create(); $faker->addProvider(new Faker\Provider\Base($faker)); $faker->addProvider(new Faker\Provider\Lorem($faker)); } return $this->faker = $faker; } public function run() { $this->call(ProductTableSeeder::class); } }

Seederをした、 $ composer dump-autoloadをするのをれないでください。artisanコマンド$ php

artisan make:seeder Nameシーダーをしないり、によってにオートロードされないので、

これで、こののコマンドphp artisan db:seedすることで、をつけるができましたphp artisan db:seed

2モデルをする

まず、 App/database/factories/ModelFactory.phpモデルのデフォルトのセットをします

ユーザーモデルをとしてりげると、ModelFactoryのようにえます

$factory->define(App\User::class, function (Faker\Generator $faker) { return [ 'name' => $faker->name,

https://riptutorial.com/ja/home 113

Page 130: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

'email' => $faker->email, 'password' => bcrypt(str_random(10)), 'remember_token' => str_random(10), ]; });

すぐテーブルシーダーをするphp artisan make:seeder UsersTableSeeder

これをします

public function run() { factory(App\User::class, 100)->create() }

これをDatabaseSeederしDatabaseSeeder

public function run() { $this->call(UsersTableSeeder::class); }

これにより、100レコードのテーブルがされます。

オンラインでデータベースシードをむ https://riptutorial.com/ja/laravel/topic/1118/データベースシード

https://riptutorial.com/ja/home 114

Page 131: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

38: データベースの

Examples

Laravelでデータベースをするには、をします。とのをする

php artisan make:migration create_first_table --create=first_table

これにより、CreateFirstTableクラスがされます。のメソッドので、をすることができます

<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateFirstTable extends Migration { public function up() { Schema::create('first_table', function (Blueprint $table) { $table->increments('id'); $table->string('first_string_column_name'); $table->integer('secont_integer_column_name'); $table->timestamps(); }); } public function down() { Schema::drop('first_table'); } }

すべてのクラスをするには、artisanコマンドをします。

php artisan migrate

これにより、データベースにテーブルとカラムがされます。そののなコマンドはのとおりです。

php artisan migrate:rollback - のデータベースをロールバックする•

php artisan migrate:reset - すべてのデータベースをロールバックする•

php artisan migrate:refresh - すべてのをリセットしてする•

php artisan migrate:status - のステータスをする•

のテーブルの

のrenaming/deletingなど、のテーブルをするがじることがあります。あなたはしいmigration.And

をしてできます。そして、あなたののupメソッドで。

https://riptutorial.com/ja/home 115

Page 132: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

//Renaming Column. public function up() { Schema::table('users', function (Blueprint $table) { $table->renameColumn('email', 'username'); }); }

のでは、 users table email columnのをusernameしusername 。のコードでは、 usersテーブルからのusernameをしていusername 。

をするには、プロジェクトのcomposer.jsonファイルにdoctrine/dbalをし、をcomposer updateためにcomposer updateをするがあります。

//Droping Column public function up() { Schema::table('users', function (Blueprint $table) { $table->dropColumn('username'); }); }

ファイル

Laravel 5アプリケーションのdatabase/migrationsは、 database/migrationsディレクトリにあります。ファイルはのにいます。

<year>_<month>_<day>_<hour><minute><second>_<name>.php

1つのファイルは、のをするためのスキーマをすがあります。えば

2016_07_21_134310_add_last_logged_in_to_users_table.php

データベースのは、Laravelがどのでするかをるために、にされます。 Laravelはにいものからしいものへのをします。

ファイルの

しいファイルでしいファイルをすると、スキーマをするがあるたびにがかかります。ありがたいことに、Laravelのartisanコマンドはあなたのためにをすることができます

php artisan make:migration add_last_logged_in_to_users_table

また、のコマンドで--tableと--createフラグをすることもできます。これらはオプションであり、のものであり、するボイラープレートコードをファイルにします。

php artisan make:migration add_last_logged_in_to_users_table --table=users

https://riptutorial.com/ja/home 116

Page 133: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

php artisan make:migration create_logs_table --create=logs

--pathオプションをして、されたマイグレーションのカスタムパスをすることができます。パスは、アプリケーションのベースパスからのパスです。

php artisan make:migration --path=app/Modules/User/Migrations

データベース

には、 up()メソッドとdown()メソッドがです。 up()メソッドのは、データベース・スキーマをしいにするためになをすることです。また、 down()メソッドのは、 up()メソッドによってされるをりすことです。データベーススキーマのをロールバックするには、 down()メソッドがをしくさせることがです。

ファイルのは、のようになります。

<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class AddLastLoggedInToUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function (Blueprint $table) { $table->dateTime('last_logged_in')->nullable(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { $table->dropColumn('last_logged_in'); }); } }

このをすると、LaravelはデータベースにしてするのSQLをします。

ALTER TABLE `users` ADD `last_logged_in` DATETIME NULL

https://riptutorial.com/ja/home 117

Page 134: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

マイグレーションがされると、マイグレーションがされ、データベースにがされます。

php artisan migrate

すべてうまくいけば、のようながされます。

Migrated: 2016_07_21_134310_add_last_logged_in_to_users_table

Laravelは、プロダクションでのをいつするかをるでです。なをっていることがされたたとえば、テーブルからをするなど、 php artisan migrateコマンドはをめます。なでは、これはましくないかもしれません。そのは、 - --forceフラグをしてをスキップします。

php artisan migrate --force

マイグレーションをしているだけのは、データベースにmigrationsテーブルがするかどうかがわかりにくいがあります。このは、Laravelがどのマイグレーションがすでにされたかをするためにするものです。 migrateコマンドをmigrate 、Laravelはまだされていないをし、それをにして、 migrationsテーブルをします。

がっていることをにしていないり、でmigrationsテーブルをするべきではありません。ってデータベースをれたにしておくと、がすることがあります。

のロールバック

の、つまりのをrollbackするは、すばらしいrollbackコマンドをできます。しかし、このコマンドはのだけをロールバックします。これにはのファイルがまれるがあります

php artisan migrate:rollback

すべてのアプリケーションのをロールバックしたいは、のコマンドをします

php artisan migrate:reset

さらに、のようにで、1つのコマンドでロールバックしてしたいは、このコマンドをできます

php artisan migrate:refresh php artisan migrate:refresh --seed

stepオプションでロールバックするstepをすることもできます。このように1ステップをロールバックします。

php artisan migrate:rollback --step=1

https://riptutorial.com/ja/home 118

Page 136: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

39: テスト

Examples

テストなコードをくことは、で、で、なプロジェクトをするでなです。 PHPのもくされているテストフレームワーク、 PHPUnitのサポートはLaravelにみまれています。 PHPUnitはphpunit.xmlファイルをしてされますphpunit.xmlファイルはすべてのしいLaravelアプリケーションのルートディレクトリにあります。

testsディレクトリには、ルートディレクトリにも、アプリケーションのをテストするためのロジックをする々のテストファイルがまれています。もちろん、アプリケーションをビルドするときにとしてこれらのテストをくのはあなたのですが、LaravelにはExampleTest.phpというサンプルファイルがまれています。

<?php use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\DatabaseTransactions; class ExampleTest extends TestCase { /** * A basic functional test example. * * @return void */ public function testBasicExample() { $this->visit('/') ->see('Laravel 5'); } }

testBasicExample()メソッドでは、サイトのインデックスページにアクセスして、そのページのどこかにLaravel 5というテキストがされていることをします。テキストがしない、テストはし、エラーがされます。

ミドルウェアなしで、しいデータベースでテスト

がテストをするにしいデータベースをさせるには、 use DatabaseMigrations 。また、Authのようなミドルウェアをけたいは、 use WithoutMiddleware 。

<?php use Illuminate\Foundation\Testing\WithoutMiddleware;

https://riptutorial.com/ja/home 120

Page 137: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

use Illuminate\Foundation\Testing\DatabaseMigrations; class ExampleTest extends TestCase { use DatabaseMigrations, WithoutMiddleware; /** * A basic functional test example. * * @return void */ public function testExampleIndex() { $this->visit('/protected-page') ->see('All good'); } }

のデータベースのためのデータベーストランザクション

DatabaseTransactionsにより、データベースはテストにすべてのをロールバックできます。のデータベースをロールバックするは、 $connectionsToTransactプロパティをするがあります

use Illuminate\Foundation\Testing\DatabaseMigrations; class ExampleTest extends TestCase { use DatabaseTransactions; $connectionsToTransact =["mysql","sqlite"] //tell Laravel which database need to rollBack public function testExampleIndex() { $this->visit('/action/parameter') ->see('items'); } }

メモリのデータベースをしてセットアップをテストする

セットアップ、テストフレームワークPHPUnitは:memory:データベースをします。

config / database.php

'connections' => [ 'sqlite_testing' => [ 'driver' => 'sqlite', 'database' => ':memory:', 'prefix' => '', ], . . .

https://riptutorial.com/ja/home 121

Page 138: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

./phpunit.xml

. . . </filter> <php> <env name="APP_ENV" value="testing"/> <env name="APP_URL" value="http://example.dev"/> <env name="CACHE_DRIVER" value="array"/> <env name="SESSION_DRIVER" value="array"/> <env name="QUEUE_DRIVER" value="sync"/> <env name="DB_CONNECTION" value="sqlite_testing"/> </php> </phpunit>

phpunit.xmlファイルはテストのデフォルトファイルであり、PHPUnitでテストするためににされています。

デフォルトのテストAPP_ENVは、 arrayがキャッシュ・ドライバCACHE_DRIVERであるtestingとしてされていtesting 。このでは、テストにデータセッション/キャッシュはされません。

ホームステッドのようなのにしてテストをするには、デフォルトをのようにします。

<env name="DB_HOST" value="192.168.10.10"/> <env name="DB_DATABASE" value="homestead"/> <env name="DB_USERNAME" value="homestead"/> <env name="DB_PASSWORD" value="secret"/>

または、なメモリデータベースをするには

<env name="DB_CONNECTION" value="sqlite"/> <env name="DB_DATABASE" value=":memory:"/>

に、 Laravelのドキュメントをえておいてください。

テストをするに、 config:clear Artisanコマンドをってキャッシュをconfig:clearてください

オンラインでテストをむ https://riptutorial.com/ja/laravel/topic/1249/テスト

https://riptutorial.com/ja/home 122

Page 139: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

40: バレー

Valetは、macOSけにされたです。マシン、ホームステッド、またはバラントのをします。 /etc/hostsファイルをにするはありません。ローカルトンネルをしてサイトをすることもできます。

Laravel Valetは、フォルダをドメインにバインドすることにより、 *.devドメインのすべてのサイトをにします。

valetコマンド[オプション] []•

パラメーター

パラメータ

コマンド

ドメイン 、fetch-share-url、れる、ヘルプ、インストール、 リンク 、 リンク 、リスト、ログ、on-latest-version、オープン、 パーク 、パス、、セキュア、、、アンインストール、

オプション

-h、--help、-q、--quiet、-V、--version、--ansi、--no-ansi、-n、--no-interaction、-v、-vv、-vvv、 -

オプション

Valet for LinuxとWindowsはなので、それぞれのGithubリポジトリのでのサポートはありません。

Examples

バレーリンク

このコマンドは、ディレクトリではなくディレクトリにのサイトをするにです。

cd ~/Projects/my-blog/ valet link awesome-blog

Valetは~/.valet/Sitesにのディレクトリをすシンボリックリンクをします。 linkコマンドをした、ブラウザのhttp://awesome-blog.devでサイトにアクセスできます。

https://riptutorial.com/ja/home 123

Page 140: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

リンクされたすべてのディレクトリのリストをするには、 valet linksコマンドをします 。 valet unlink awesome-blogってvalet unlink awesome-blogをリンクしてシンボリックリンクをすることができvalet unlink awesome-blog 。

バレットパーク

cd ~/Projects valet park

このコマンドは、Valetがサイトをするパスとしてのディレクトリをします。は、 "parked"ディレクトリにしたLaravelプロジェクトは、にhttp://folder-name.devhttp://folder-name.devされます。

バレーリンク

このコマンドは、したみバレーリンクとそれにするファイルパスをコンピュータにします。

コマンド

valet links

サンプル

... site1 -> /path/to/site/one site2 -> /path/to/site/two ...

1このコマンドは、リンクされたフォルダだけでなく、どこからでもできます。

2サイトには.devのがされませんが、 site1.devをしてブラウザからアプリケーションにアクセスします。

インストール

ValetはmacOSにされたツールです。

ValetはローカルマシンのHTTPポートポート80をしているため、 ApacheまたはNginxがじマシンにインストールされてされているはできません。

MacOSの」のパッケージマネージャをにバレーをするがあります。•

でbrew updateをして、Homebrewがバージョンにされていることをします。•

インストール

brew install homebrew/php/php71 HomebrewをってPHP 7.1をインストールしてbrew install

homebrew/php/php71 。•

コンポーザーをしてcomposer global require laravel/valetインストールcomposer global •

https://riptutorial.com/ja/home 124

Page 141: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

require laravel/valet 。~/.composer/vendor/binディレクトリをシステムの "PATH"に~/.composer/vendor/binしますしない。

valet installコマンドをします。•

ポストインストールインストールプロセス、ValetはDnsMasqをインストールしました 。また、システムににするようにValetのデーモンをしたので、マシンをvalet installたびにvalet startまたはvalet installをするはありません。

バレエドメイン

このコマンドをすると、ドメインをローカルマシンにバインドするためにされるTLD トップレベルドメインをまたはできます。

のTLDをする

$ valet domain > dev

TLDをする

$ valet domain local > Your Valet domain has been updated to [local].

インストールLinux

ValetはmacOSにされたツールで、のバージョンはLinux OSにされています。

rootとして、またはsudoコマンドをして、valetをインストールしないでください 。•

ValetはローカルマシンのHTTPポートポート80をしているため、ApacheまたはNginxがじマシンにインストールされてされているはできません。

Valetをインストールしてするには、のバージョンのcomposerがです。•

インストール

composer global require cpriego/valet-linuxするバレットをグローバルにインストールするにcomposer global require cpriego/valet-linuxがcomposer global require cpriego/valet-linux 。

valet installコマンドをしてvalet installをします。•

ポストインストール

インストールプロセス、ValetはDnsMasqをインストールしました。また、システムににするようにValetのデーモンをしたので、マシンをvalet installたびにvalet startまたはvalet installをするはありません。

https://riptutorial.com/ja/home 125

Page 142: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

はここにあります 。

オンラインでバレーをむ https://riptutorial.com/ja/laravel/topic/1906/バレー

https://riptutorial.com/ja/home 126

Page 143: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

41: ファイルシステム/クラウドストレージ

Examples

ファイルシステムファイルはconfig/filesystems.php 。このファイルで、すべての "ディスク"をすることができます。ディスクはのストレージドライバとストレージのをします。サポートされているドライバのがファイルにまれています。そのため、ストレージのとをするようにをするだけです

S3またはRackspaceドライバをするに、なパッケージをComposerでインストールするがあります。

Amazon S3 league/flysystem-aws-s3-v2 ~1.0•Rackspace league/flysystem-rackspace ~1.0•

もちろん、なのディスクをし、じドライバをするのディスクをすることもできます。

ローカルドライバをするは、すべてのファイルが、ファイルでされているルートディレクトリからのパスであることにしてください。デフォルトでは、このはstorage/app directoryされていstorage/app directory 。したがって、のではファイルをstorage/app/file.txtにstorage/app/file.txtします。

Storage::disk('local')->put('file.txt', 'Contents');

Storageファサードは、みのディスクとのにできます。または、Laravelサービスコンテナをしてされたクラスで、 Illuminate\Contracts\Filesystem\Factoryタイプヒントすることもできます。

のディスクをする

$disk = Storage::disk('s3'); $disk = Storage::disk('local');

ファイルがするかどうかの

$exists = Storage::disk('s3')->exists('file.jpg');

デフォルトディスクのメソッドのびし

if (Storage::exists('file.jpg')) { // }

https://riptutorial.com/ja/home 127

Page 144: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ファイルのをする

$contents = Storage::get('file.jpg');

ファイルのをする

Storage::put('file.jpg', $contents);

ファイルにする

Storage::prepend('file.log', 'Prepended Text');

ファイルにする

Storage::append('file.log', 'Appended Text');

ファイルをする

Storage::delete('file.jpg'); Storage::delete(['file1.jpg', 'file2.jpg']);

ファイルをしいにコピーする

Storage::copy('old/file1.jpg', 'new/file1.jpg');

ファイルをしいにする

Storage::move('old/file1.jpg', 'new/file1.jpg');

ファイルサイズをする

$size = Storage::size('file1.jpg');

をするUNIX

$time = Storage::lastModified('file1.jpg');

ディレクトリのすべてのファイルをする

$files = Storage::files($directory); // Recursive... $files = Storage::allFiles($directory);

ディレクトリのすべてのディレクトリをする

https://riptutorial.com/ja/home 128

Page 145: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$directories = Storage::directories($directory); // Recursive... $directories = Storage::allDirectories($directory);

ディレクトリをする

Storage::makeDirectory($directory);

ディレクトリをする

Storage::deleteDirectory($directory);

カスタムファイルシステム

LaravelのFlysystemインテグレーションは、いくつかの「ドライバー」のためのドライバーをします。ただし、Flysystemはこれらにされず、のくのストレージシステムのアダプタをえています。 Laravelアプリケーションでこれらののアダプタの1つをするは、カスタムドライバをできます。しないで、それほどしいことではありません

カスタムファイルシステムをするには、 DropboxFilesystemServiceProviderなどのサービスプロバイダをするがあります。プロバイダのbootメソッドでは、 Illuminate\Contracts\Filesystem\Factoryインスタンスをし、されたインスタンスのextendメソッドをびすことがextendます。または、 Diskファサードのextendメソッドをすることもできます。

extendメソッドののはドライバので、2のは$appおよび$configをけるClosureです。リゾルバクロージャは、 League\Flysystem\Filesystemインスタンスをさなければなりません。

$ configには、したディスクのconfig/filesystems.phpされているがすでにまれています。 Dropboxの

<?php namespace App\Providers; use Storage; use League\Flysystem\Filesystem; use Dropbox\Client as DropboxClient; use League\Flysystem\Dropbox\DropboxAdapter; use Illuminate\Support\ServiceProvider; class DropboxFilesystemServiceProvider extends ServiceProvider { public function boot() { Storage::extend('dropbox', function($app, $config) { $client = new DropboxClient($config['accessToken'], $config['clientIdentifier']); return new Filesystem(new DropboxAdapter($client)); }); }

https://riptutorial.com/ja/home 129

Page 146: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

public function register() { // } }

SSHをしたWebサーバーでのシンボリックリンクの

Laravelのドキュメントでは、ファイルをWebからアクセスにするために、public / storageからstorage / app / publicへのシンボリックリンクシンボリックリンクまたはソフトリンクをするがあります。

このは、ララベルのプロジェクトディレクトリにシンボルのリンクをします

SSHクライアントをしてLinux Webサーバーでシンボリックリンクをするはのとおりです。

SSHクライアントPUTTYをしてWebサーバーにし、ログインします。1.

をしてstorage / app / publicをpublic / storageにリンクする

ln -s target_path link_path

CPanelファイルディレクトリ

ln -s /home/cpanel_username/project_name/storage/app/public /home/cpanel_sername/project_name/public/storage

2.

フォルダアイコンのインジケータ>>>とpathをリンクするためにstorageというのフォルダがされます。

オンラインでファイルシステム/クラウドストレージをむ

https://riptutorial.com/ja/laravel/topic/3040/ファイルシステム-クラウドストレージ

https://riptutorial.com/ja/home 130

Page 147: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

42: フォームリクエスト

カスタムリクエストまたはフォームリクエストは、コントローラメソッドにヒットするにをして

するがあるにです。

2つのないをえてみましょう。それぞれのアクションがなるまたはルールセットをつ、レコードをおよびします。

フォームリクエストをするのはですが、メソッドにリクエストクラスをタイプヒントするがあります。

php artisan makeリクエストname_of_request•

は、コントローラからをするときにです。また、がされているかどうかをすることもできます。

Examples

リクエストの

php artisan make:request StoreUserRequest php artisan make:request UpdateUserRequest

FormRequestsはapp/Http/Requests/フォルダにされているので、 StoreUserやUpdateUser Requestなしなどのをすることもえられます。

フォームリクエストの

ユーザーのをけてみましょうストアメソッドとメソッドをつコントローラがあるかもしれません。 FormRequestsをするには、のをタイプヒントにします。

... public function store(App\Http\Requests\StoreRequest $request, App\User $user) { //by type-hinting the request class, Laravel "runs" StoreRequest //before actual method store is hit //logic that handles storing new user //(both email and password has to be in $fillable property of User model $user->create($request->only(['email', 'password'])); return redirect()->back(); } ...

https://riptutorial.com/ja/home 131

Page 148: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

public function update(App\Http\Requests\UpdateRequest $request, App\User $users, $id) { //by type-hinting the request class, Laravel "runs" UpdateRequest //before actual method update is hit //logic that handles updating a user //(both email and password has to be in $fillable property of User model $user = $users->findOrFail($id); $user->update($request->only(['password'])); return redirect()->back(); }

のリダイレクトの

によっては、フォームをしたにユーザーがリダイレクトされるをするためにログインするがあるがあります。フォームリクエストはさまざまなをします。

デフォルトでは、Request $redirect 、 $redirectRoute 、 $redirectActionされた3つのがあります。

これら3つののに、メインのリダイレクトハンドラgetRedirectUrl()オーバーライドすることができます。

のサンプルリクエストがあなたのできることをしています。

<?php namespace App; use Illuminate\Foundation\Http\FormRequest as Request; class SampleRequest extends Request { // Redirect to the given url public $redirect; // Redirect to a given route public $redirectRoute; // Redirect to a given action public $redirectAction; /** * Get the URL to redirect to on a validation error. * * @return string */ protected function getRedirectUrl() { // If no path is given for `url()` it will return a new instance of `Illuminate\Routing\UrlGenerator` // If your form is down the page for example you can redirect to a hash return url()->previous() . '#contact'; //`url()` provides several methods you can chain such as

https://riptutorial.com/ja/home 132

Page 149: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

// Get the current URL return url()->current(); // Get the full URL of the current request return url()->full(); // Go back return url()->previous(); // Or just redirect back return redirect()->back(); } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return []; } /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } }

オンラインでフォームリクエストをむ https://riptutorial.com/ja/laravel/topic/6329/フォームリクエスト

https://riptutorial.com/ja/home 133

Page 150: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

43: ブレードテンプレート

Laravelは、ブレードテンプレートエンジンをそのままのでサポートします。ブレードテンプレートエンジンをすると、マスターテンプレートとテンプレートをしてマスターテンプレートからコンテンツをロードすることができます。ブレードファイルに、ループ、およびをめることができます。

Examples

ビューには、MVCパターンで、ユーザーにデータをするにするロジックがまれています。 Webアプリケーションでは、には、それぞれのでユーザーにされるHTMLをするためにされます。デフォルトでは、Laravelのビューはresources/viewsディレクトリにされresources/views 。

ビューはviewヘルパーをしてびすことができます

view(string $path, array $data = [])

ヘルパーののパラメータはビューファイルへのパスで、2のパラメータはビューにすデータのオプションのです。

したがって、 resources/views/example.phpをびすには、をします。

view('example');

resources/views/parts/header/navigation.phpようなresources/viewsディレクトリのサブフォルダのファイルをするには、ドットをしてびすことができます view('parts.header.navigation');

resources/views/example.phpなどのビューファイルでは、HTMLとPHPのをにみむことができます。

<html> <head> <title>Hello world!</title> </head> <body> <h1>Welcome!</h1> <p>Your name is: <?php echo $name; ?></p> </body> </html>

のBladeのはしていませんでは、 $nameをしています。このをビューにすには、ビューヘルパーをびすときにのをします。

https://riptutorial.com/ja/home 134

Page 151: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

view('example', ['name' => $name]);

compact()ヘルパーをすることもできます。この、compactにされるは、ビューにすのにします。

view('example', compact('name'));

のの

データをりしてします。あなたはのvariable underscoreをうことができvariableが、 - laravelをするとエラーになります。

このように、エラー user-addressにhyphen ( - )

view('example',['user-address' => 'Some Address']);

これをうしいは

view('example', ['user_address' => 'Some Address']);

Bladeは、なPHPコントロールになをします。

コントロールは@[structure]でまり、 @[endstructure] 。タグでは、のHTMLをするだけで、Blade

でをめることにしてください。

'If'ステートメント

@if ($i > 10) <p>{{ $i }} is large.</p> @elseif ($i == 10) <p>{{ $i }} is ten.</p> @else <p>{{ $i }} is small.</p> @endif

「わないと」

'ないはい。'

@unless ($user->hasName()) <p>A user has no name.</p> @endunless

ループ

https://riptutorial.com/ja/home 135

Page 152: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

'While'ループ

@while (true) <p>I'm looping forever.</p> @endwhile

'Foreach'ループ

@foreach ($users as $id => $name) <p>User {{ $name }} has ID {{ $id }}.</p> @endforeach

「Forelse」ループ

'foreach'ループとじですが、されるがのにされるな@emptyディレクティブをして、デフォルトのコンテンツをします。

@forelse($posts as $post) <p>{{ $post }} is the post content.</p> @empty <p>There are no posts.</p> @endforelse

ループでは、ループのにするをむな$loopをできます。

プロパティ

$loop->index のループのインデックス0からまる。

$loop->iteration のループ1から。

$loop->remaining りのループ。

$loop->count されるのアイテムの。

$loop->first これがループをるのであるかどうか。

$loop->last これがループをるのであるかどうか。

$loop->depth のループのネストレベル。

$loop->parent ネストされたループの、のループ。

@foreach ($users as $user) @foreach ($user->posts as $post)

https://riptutorial.com/ja/home 136

Page 153: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

@if ($loop->parent->first) This is first iteration of the parent loop. @endif @endforeach @endforeach

Laravel 5.2.22、 @break @continueと@breakというもできます

プロパティ

@continue のをし、のをします。

@break のループをします。

@foreach ($users as $user) @continue ($user->id == 2) <p>{{ $user->id }} {{ $user->name }}</p> @break ($user->id == 4) @endforeach

に 5のユーザーがIDでソートされていて、IDがない 、ページはレンダリングされます

1 Dave 3 John 4 William

PHPをエコーする

{{ $variable }}のPHPは、 eヘルパーのにechoされます 。 だから、をhtmlの< 、 > 、 " 、 ' 、 &にするHTMLエンティティのためにされている。PHPはにされるがあり、そうでないはがスローされます。

をエコーする

{{ $variable }}

のをエコーする

{{ $array["key"] }}

オブジェクトプロパティをエコーする

{{ $object->property }}

https://riptutorial.com/ja/home 137

Page 154: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

びしのをエコーする

{{ strtolower($variable) }}

の、PHPでは、がされているかどうかをチェックして、それをします

PHP 7より•

<?php echo isset($variable) ? $variable : 'Default'; ?>

PHP 7の "Null coalescing operator"を•

<?php echo $variable ?? 'Default'; ?>

Bladeオペレータorこれをにする

{{ $variable or 'Default' }}

のエコーしたように、なのは{{ }}のをしてさhtmlspecialchars、セキュリティのためにのHTMLのなをします。 PHPののとしてされるHTMLコンテンツのブロックをするなど、このをするには、のをします。

{!! $myHtmlString !!}

になをき、の{{ }}をしてデータをエスケープするのがベストプラクティスとえられます。また、できないコンテンツサイトのユーザーからされたコンテンツをエコーするは、 {!! !!}です。

なビューをむ

Bladeでは、ビュー「」とばれるをのようにページにめることもできます。

@include('includes.info', ['title' => 'Information Station'])

のコードは 'views / includes / info.blade.php'のビューをみます。また、 'Information Station'をつ$titleをします。

に、インクルードされたページはびしページがアクセスなにアクセスできます。たとえば、のような

https://riptutorial.com/ja/home 138

Page 155: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

{{$user}} // Outputs 'abc123' @include('includes.info')

'includes / info.blade.php'にはのものがあります

<p>{{$user}} is the current user.</p>

に、ページがレンダリングされます。

abc123 abc123 is the current user.

それぞれをむ

によっては、 includeステートメントとforeachステートメントをみわせ、 includeのforeachループのにアクセスすることもあります。この、Bladeの@eachディレクティブをして@each

@each('includes.job', $jobs, 'job')

のパラメータは、めるページです。 2のパラメータは、するです。 3のパラメータは、のにりてられたです。のはのものとです

@foreach($jobs as $job) @include('includes.job', ['job' => $job]) @endforeach

@eachディレクティブにオプションの4をして、がのときにするビューをすることもできます。

@each('includes.job', $jobs, 'job', 'includes.jobsEmpty')

レイアウト

レイアウトはビューファイルであり、のビューによってされ、そのブロックにコードブロックをします。えば

parent.blade.php

<html> <head> <style type='text/css'> @yield('styling') </style> </head> <body> <div class='main'> @yield('main-content') </div> </body> </html>

https://riptutorial.com/ja/home 139

Page 156: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

child.blade.php

@extends('parent') @section('styling') .main { color: red; } @stop @section('main-content') This is child page! @stop

otherpage.blade.php

@extends('parent') @section('styling') .main { color: blue; } @stop @section('main-content') This is another page! @stop

ここでは、それぞれがをする2つのページのをします。ページは、 @yieldをし@section 。これは、な@yieldステートメントでにされます。

そうでレンダリングされたビューView::make('child') 「 これはページです」とうだろうで、、 View::make('otherpage')テキスト「 これはのあるをき、じHTMLをしますページ "をでします。

ビューファイルをするのはです。たとえば、レイアウトファイルのレイアウトフォルダと、さまざまなの々のビューの々のフォルダがあります。

レイアウトは、々のビューごとにHTMLボイラープレートをすべてきすことなく、サイドバーまたはヘッダーをするなど、すべてのページにするコードをするためのものです。

ビューはりしできます。つまり、 page3は@extend('page2') 、 page2は@extend('page1')です。

extendコマンドは、 View::makeおよび@includeとじをするため、ファイルlayouts/main/page.blade.phpはlayouts/main/page.blade.phpとしてアクセスされlayouts.main.page 。

すべてのビューにデータをする

によっては、くのビューでじデータをするがあります。

View :: shareをする

https://riptutorial.com/ja/home 140

Page 157: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

// "View" is the View Facade View::share('shareddata', $data);

この、 $dataのは$shareddataというですべてのビューでになります。

View::shareは、、サービスプロバイダやコントローラのコンストラクタでびされるため、データはそのコントローラからされたビューでのみされます。

View :: composerをするビューコンポーザーは、ビューのレンダリングにびされるコールバックまたはクラスメソッドです。ビューをレンダリングするたびにビューにバインドするデータがある、ビュー・コンポーザーをして、そのロジックをのにすることができます。をのビューまたはすべてのビューにバインドできます。

クロージャベースの

use Illuminate\Support\Facades\View; // ... View::composer('*', function ($view) { $view->with('somedata', $data); });

クラスベースの

use Illuminate\Support\Facades\View; // ... View::composer('*', 'App\Http\ViewComposers\SomeComposer');

View::shareとに、サービスプロバイダにをするのがです。

コンポーザークラスのアプローチをすると、 App/Http/ViewComposers/SomeComposer.phpにのようにApp/Http/ViewComposers/SomeComposer.phpれます。

use Illuminate\Contracts\View\View; class SomeComposer { public function compose(View $view) { $view->with('somedata', $data); } }

https://riptutorial.com/ja/home 141

Page 158: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

これらのでは、のに'*'がされています。このパラメータは、コンポーザーをするビュー *はワイルドカードとするです。サブフォルダのにあるルートグループののビュー 'home' をすることもできます 'users.*' 。

のPHPコードをする

をにphpうとすると、ビューでそのようなことをするのはではないかもしれませんが、 php Blade

ディレクティブは、たとえばをするためにPHPコードをするをします

@php($varName = 'Enter content ')

とじ

@php $varName = 'Enter content '; @endphp

{{ $varName }}

コンテンツを

オンラインでブレードテンプレートをむ https://riptutorial.com/ja/laravel/topic/1407/ブレードテンプレート

https://riptutorial.com/ja/home 142

Page 159: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

44: ページネーション

Examples

Laravelのページネーション

のフレームワークではページネーションはです。 Laravelはそれをにします。ControllerとViewにコードをしするだけでページネーションをできます。

のページをするにはくのがありますが、もなは、クエリビルダまたはEloquentクエリでページネートメソッドをすることです。 Laravelは、ユーザーがしているのページにづいて、とオフセットをします。デフォルトでは、のページは、HTTPリクエストのpage query stringのによってされます。そしてかに、このはLaravelによってにされ、paginatorによってされたリンクにされます。

さて、クエリでpaginateメソッドをびたいとしましょう。このでは、paginateにされるは、「ページごとに」したいのです。たちの、ページあたり10のアイテムをしたいとします。

<?php namespace App\Http\Controllers; use DB; use App\Http\Controllers\Controller; class UserController extends Controller { /** * Show all of the users for the application. * * @return Response */ public function index() { $users = DB::table('users')->paginate(10); return view('user.index', ['users' => $users]); } }

、 groupByステートメントをするページネーションは、Laravelによってにできません。ページされたセットでgroupByをするがあるは、データベースにクエリをい、でページをすることをおめします。

なページネーション

たとえば、のリンクとのリンクをページビューにしたいとします。 LaravelはsimplePaginateメソッドをってこのオプションをします。

https://riptutorial.com/ja/home 143

Page 160: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

$users = DB::table('users')->simplePaginate(10);

ビューでのの

これで、ページりをすることができます。にEloquentクエリのpaginateまたはsimplePaginateメソッドをびすと、 paginateのインスタンスがされます。 paginateメソッドがびされると、 Illuminate\Pagination\LengthAwarePaginatorインスタンスがされ、 simplePaginateメソッドをびすと、 Illuminate\Pagination\PaginatorインスタンスがIlluminate\Pagination\Paginatorます。これらのインスタンス/オブジェクトには、セットをするいくつかのメソッドがしています。さらに、これらのヘルパーメソッドにえて、ページネーターインスタンスはイテレーターであり、としてループすることができます。

をけったら、ブレードをしてページリンクをにレンダリングできます

<div class="container"> @foreach ($users as $user) {{ $user->name }} @endforeach </div> {{ $users->links() }}

linksメソッドは、セットののページへのリンクをにレンダリングします。これらのリンクのそれぞれには、のページ、つまり?pageクエリがまれます。 linksメソッドによってされたHTMLは、 Bootstrap CSSフレームワークとにがあります。

ページりビューの

laravelページネーションをしているは、のカスタムビューをにすることができます。したがって、paginatorインスタンスのリンクメソッドをびすときは、ビューをメソッドののとしてします。

{{ $paginator->links('view.name') }}

または

ページビューをカスタマイズするには、vendorpublishコマンドをしてresources/views/vendorディレクトリにエクスポートします。

php artisan vendor:publish --tag=laravel-pagination

このコマンドは、ビューをresources/views/vendor/paginationディレクトリにします。このディレクトリのdefault.blade.phpファイルは、デフォルトのページりビューにしています。このファイルをして、ページネーションのHTMLをします。

オンラインでページネーションをむ https://riptutorial.com/ja/laravel/topic/2359/ページネーション

https://riptutorial.com/ja/home 144

Page 161: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

45: ヘルパー

Laravelヘルパーは、フレームワークによってされたグローバルにアクセスなです。オブジェクトをインスタンスしたりクラスをインポートしたりすることなく、アプリケーションのどこからでもびすことも、してすることもできます。

、 パス 、 、 URLなどをするためのヘルパーがあります

Examples

メソッド

array_add

このメソッドは、しいキーのペアをにするためにされます。

$array = ['username' => 'testuser']; $array = array_add($array, 'age', 18);

['username' => 'testuser', 'age' => 18]

Stringメソッド

キャメルケース

このメソッドは、をラクダケースにします。

camel_case('hello_world');

HelloWorld

パスmehods

パスメソッドをすると、どこからでもアプリケーションのパスににアクセスできます。

public_path

このメソッドは、アプリケーションのパスをします。これはパブリックディレクトリです。

$path = public_path();

https://riptutorial.com/ja/home 145

Page 162: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

URL

url

urlは、されたパスへのURLをします。

あなたのサイトがhello.com

echo url('my/dashboard');

ります

hello.com/my/dashboard

urlメソッドにもされなければ、 Illuminate\Routing\UrlGeneratorインスタンスがされ、このようにできます

のURLをします

echo url()->current();

なURLをします

echo url()->full();

のURLをします

echo url()->previous();

オンラインでヘルパーをむ https://riptutorial.com/ja/laravel/topic/8827/ヘルパー

https://riptutorial.com/ja/home 146

Page 163: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

46: ポリシー

Examples

ポリシーの

なアプリケーションでは、 AuthServiceProviderのすべてのロジックをするのがになるがあるため、ロジックを「ポリシー」クラスにすることができます。ポリシーとは、されたリソースにづいてロジックをグループするプレーンなPHPクラスです。

make:policy artisanコマンドをしmake:policyポリシーをすることができます。されたポリシーは、 app/Policiesディレクトリにされます。

php artisan make:policy PostPolicy

オンラインでポリシーをむ https://riptutorial.com/ja/laravel/topic/7344/ポリシー

https://riptutorial.com/ja/home 147

Page 164: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

47: ミドルウェア

ミドルウェアはクラスであり、1つまたはのルートにりてることができ、サイクルのまたはでアクションをするためにされます。たちは、HTTPリクエストがされているにしなければならないのレイヤーとえることができます

「」ミドルウェアは、コントローラアクションコードのにされます。リクエストがアプリケーションによってされたに「After」ミドルウェアがされる

Examples

ミドルウェアの

しいミドルウェアをするには、ミドルウェアクラスをするがあります。

class AuthenticationMiddleware { //this method will execute when the middleware will be triggered public function handle ( $request, Closure $next ) { if ( ! Auth::user() ) { return redirect('login'); } return $next($request); } }

ミドルウェアをアプリケーションのすべてのルートにバインドするがある、ミドルウェアをapp/Http/Kernel.phpミドルウェアプロパティにするがあります。

protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \App\Http\Middleware\AuthenticationMiddleware::class ];

ミドルウェアをいくつかのルートにけるだけのは、 $routeMiddlewareすることができ$routeMiddleware

//register the middleware as a 'route middleware' giving it the name of 'custom_auth' protected $routeMiddleware = [ 'custom_auth' => \App\Http\Middleware\AuthenticationMiddleware::class ];

これをのようにのルートにバインドします。

https://riptutorial.com/ja/home 148

Page 165: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

//bind the middleware to the admin_page route, so that it will be executed for that route Route::get('admin_page', 'AdminController@index')->middleware('custom_auth');

とのミドルウェア

「」のミドルウェアのは、のとおりです。

<?php namespace App\Http\Middleware; use Closure; class BeforeMiddleware { public function handle($request, Closure $next) { // Perform action return $next($request); } }

「」のミドルウェアはのようになります。

<?php namespace App\Http\Middleware; use Closure; class AfterMiddleware { public function handle($request, Closure $next) { $response = $next($request); // Perform action return $response; } }

ないは、 $requestパラメータのです。アクションがにしているは$next($request)コントローラのコードのにどうなることがされるびしに$next($request)のコントローラコードがされたにされたアクションにつながります。

ルートミドルウェア

されたミドルウェアrouteMiddlewareでapp/Http/Kernel.phpルートにりてることができます。

ミドルウェアをりてるはいくつかありますが、すべてじです。

https://riptutorial.com/ja/home 149

Page 166: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Route::get('/admin', 'AdminController@index')->middleware('auth', 'admin'); Route::get('admin/profile', ['using' => 'AdminController@index', 'middleware' => 'auth']); Route::get('admin/profile', ['using' => 'AdminController@index', 'middleware' => ['auth', 'admin']);

のすべてのでは、ミドルウェアとしてされていても、クラスをミドルウェアとしてすことができます。

use App\Http\Middleware\CheckAdmin; Route::get('/admin', 'AdminController@index')->middleware(CheckAdmin::class);

オンラインでミドルウェアをむ https://riptutorial.com/ja/laravel/topic/3419/ミドルウェア

https://riptutorial.com/ja/home 150

Page 167: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

48: よくあるとすばやい

このセクションでは、にがするなとクイックフィックスをします。

Examples

TokenMisMatch

このはにフォームのによってられます。 Laravelは、 CSRFからアプリケーションをし、すべてのをし、がアプリケーションでしたことをします。このはtokenをしてわれtoken 。このトークンがしない、このがされます。

クイックフィックス

フォームにこれをします。これは、 csrf_tokenによってされたcsrf_tokenをのフォームデータとにするため、laravelはリクエストがであることをします

<input type="hidden" name="_token" value="{{ csrf_token() }}">

オンラインでよくあるとすばやいをむ https://riptutorial.com/ja/laravel/topic/9971/よくあるとすばやい

https://riptutorial.com/ja/home 151

Page 168: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

49: ラーベールパッケージ

Examples

laravel-ide-helper

このパッケージは、IDEができるファイルをするので、なをできます。はプロジェクトのファイルにづいてわれます。

しくはこちら

laravel-datatables

このパッケージは、Eloquent ORM、Fluent Query BuilderまたはCollectionをして、AJAXオプションをしてDataTables jQuery Pluginのサーバーのをするためにされています。

これについてのをむここやここに

イメージ

Intervention Imageは、オープンソースのPHPおよびライブラリです。これは、を、、するためのよりでかなをし、もな2つのライブラリGD LibraryとImagickをサポートしています。

しくはこちら

ラベラージェネレータ

CRUD、API、テストケース、SwaggerドキュメントをするためのかりやすいAPIとパネルをしています.Laravel Generator

しくはこちら

ラーベルソルジャイト

Laravel SocialiteはFacebook、Twitter、Google、LinkedIn、GitHub、BitbucketでOAuthへのかなインターフェイスをします。それはあなたがこうとしているろしいなコードのほとんどをします。

しくはこちら

パッケージ

レジ

https://riptutorial.com/ja/home 152

Page 169: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Laravel Cashierは、 StripeとBraintreeのサブスクリプションサービスにするかななインターフェースをします。それはあなたがくことをれているのコードのほとんどをします。キャッシャーは、なサブスクリプションにえて、クーポンの、サブスクリプションの、サブスクリプションの「」、キャンセル、さらにはPDFのもです。

このパッケージのはこちらをごください 。

Laravel Envoyは、リモートサーバーでするなタスクをするためのクリーンでのをします。ブレードスタイルのをすると、、のコマンドなどのタスクをにできます。、EnvoyはMacおよびLinuxオペレーティングシステムのみをサポートしています。

このパッケージはGithubにあります。

パスポート

Laravelはのログインフォームでをにできますが、APIはどうですか APIは、ユーザーをするためにトークンをし、でセッションをしません。 LaravelはLaravel PassportをしてAPIをにいます。Laravel PassportはLaravelアプリケーションのなOAuth2サーバーをでします。

このパッケージのはこちらをごください 。

スカウト

Laravel Scoutは、フルテキストをEloquentモデルにするための、シンプルなドライバベースのソリューションをします。モデルオブザーバーをして、ScoutはあなたのEloquentレコードとにインデックスをさせます。

、スカウトにはAlgoliaドライバーがされています。ただし、カスタムドライバのはで、のでScout

をにできます。

このパッケージのはこちらをごください 。

Laravel SocialiteはFacebook、Twitter、Google、LinkedIn、GitHub、BitbucketでOAuthへのかなインターフェイスをします。それはあなたがこうとしているろしいなコードのほとんどをします。

このパッケージはGithubにあります。

オンラインでラーベールパッケージをむ https://riptutorial.com/ja/laravel/topic/8001/ラーベールパッケージ

https://riptutorial.com/ja/home 153

Page 170: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

50: ララベルドッカー

すべてのとチームがするは、のです。 LaravelはもしているPHPフレームワークの1つです。、DDockerは、のとコードをしてするに、「のマシンでする」をするです。はにでなをりします。どちらもになることをしていますが、をみわせてらしいをりすことができます。

Examples

ララドックをう

Laradockは、Laravelのにわせてされたをえるプロジェクトです。

プロジェクトのルートフォルダにあるLaradockをダウンロードまたはクローンします。

git clone https://github.com/Laradock/laradock.git

ディレクトリをLaradockにし、をするためにな.envファイルをします。

cd laradock cp .env-example .env

これで、ドッカーをするがいました。にコンテナをすると、インターネットからなパッケージがすべてダウンロードされます。

docker-compose up -d nginx mysql redis beanstalkd

http://localhostブラウザをき、プロジェクトをできます。

なLaradockのドキュメントとについては、 ここをクリックしてください 。

オンラインでララベルドッカーをむ https://riptutorial.com/ja/laravel/topic/10034/ララベルドッカー

https://riptutorial.com/ja/home 154

Page 171: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

51: リクエスト

Examples

をするなは、コントローラにIlluminate\Http\Requestをすることです。その、データにアクセスするはあり、そのうちの4つはのにあります。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function store(Request $request) { // Returns the username value $name = $request->input('username'); // Returns the username value $name = $request->username; // Returns the username value $name = request('username'); // Returns the username value again $name = request()->username; } }

inputをする、ができないのデフォルトをすることもできます

$name = $request->input('username', 'John Doe');

オンラインでリクエストをむ https://riptutorial.com/ja/laravel/topic/3076/リクエスト

https://riptutorial.com/ja/home 155

Page 172: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

52: リクエスト

Examples

HTTPリクエストのインスタンスをする

HTTPリクエストのインスタンスをするには、クラスIlluminate\Http\Requestがコンストラクタまたはコントローラのメソッドのいずれかでヒントになるがあります。

コード

<?php namespace App\Http\Controllers; /* Here how we illuminate the request class in controller */ use Illuminate\Http\Request; use Illuminate\Routing\Controller; class PostController extends Controller { /** * Store a new post. * * @param Request $request * @return Response */ public function store(Request $request) { $name = $request->input('post_title'); /* * so typecasting Request class in our method like above avails the * HTTP GET/POST/PUT etc method params in the controller to use and * manipulate */ } }

コントローラメソッドのルートからのパラメータをしてインスタンスをする

によっては、ルートパラメータをけれるだけでなく、HTTPリクエストパラメータにアクセスするがあります。たちはまだlaravelコントローラにRequestsクラスのヒントをタイプし、でするようにそれをすることができます

えば、たちはこれのようなのをするルートをっていますIDをします

Route::put('post/{id}', 'PostController@update');

https://riptutorial.com/ja/home 156

Page 173: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

また、ユーザーがのフォームフィールドをしたので、HTTPリクエストでできるようになります

たちのではにアクセスするです

public function update(Request $request,$id){ //This way we have $id param from route and $request as an HTTP Request object }

オンラインでリクエストをむ https://riptutorial.com/ja/laravel/topic/4929/リクエスト

https://riptutorial.com/ja/home 157

Page 174: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

53: ルーティング

Examples

なルーティング

ルーティングは、ののHTTPメソッドとURIののマップとのアクションをします。は、 app/Http/routes.phpファイルにきまれます。

もなでは、RouteファサードでするHTTPメソッドをびし、パラメータとしてURIアプリケーションルートからのパスにするとコールバックをすことで、ルートがされます。

たとえば、ビューのhomeをすサイトのルートURIへのルートはのようになります。

Route::get('/', function() { return view('home'); });

ポストをにエコーするポストリクエストのルート

Route::post('submit', function() { return Input::all(); }); //or Route::post('submit', function(\Illuminate\Http\Request $request) { return $request->all(); });

コントローラメソッドをすルートコールバックをインラインでするわりに、[ControllerClassName @ Method]のコントローラメソッドをできます。

Route::get('login', 'LoginController@index');

ののルートmatchメソッドをして、されたルートのHTTPメソッドのをすることができます。

Route::match(['GET', 'POST'], '/', 'LoginController@index');

https://riptutorial.com/ja/home 158

Page 175: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

また、 allをallて、のルートのHTTPメソッドにさせることもできます。

Route::all('login', 'LoginController@index');

ルートグループルートをグループして、コードのりしをけることができます。

のは、のをつすべてのURIとしましょう/adminのミドルウェアとばれるしてadminし、それらはすべてにんでいるApp\Http\Controllers\Adminのネームスペース。

ルートグループをしてこれをするきれいなは、のとおりです。

Route::group([ 'namespace' => 'Admin', 'middleware' => 'admin', 'prefix' => 'admin' ], function () { // something.dev/admin // 'App\Http\Controllers\Admin\IndexController' // Uses admin middleware Route::get('/', ['uses' => 'IndexController@index']); // something.dev/admin/logs // 'App\Http\Controllers\Admin\LogsController' // Uses admin middleware Route::get('/logs', ['uses' => 'LogsController@index']); });

きルート

きルートは、URLをするためにされるか、のルートにリダイレクトされます。きルートをするは、ルートのURIをした、きルートをしているは、URLをしたり、そのルートをすリダイレクトをうがなくなります。しかし、リンクがURLをしてされた[ url('/admin/login') ]をすると、どこでされているかをするがあります。

きルートはasキーasasてされます

Route::get('login', ['as' => 'loginPage', 'uses' => 'LoginController@index']);

またはメソッドnameをする

Route::get('login', 'LoginController@index')->name('loginPage');

きルートをしてURLをする

https://riptutorial.com/ja/home 159

Page 176: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ルートのをしてURLをするには

$url = route('loginPage');

リダイレクトにルートをしている

$redirect = Redirect::route('loginPage');

ルートパラメータ

ルートパラメータをすると、URIセグメントのをできます。ルートをするときにオプションの/のルートパラメータをすることができます。オプションのパラメータには?パラメータのにされます。このは{}まれています

オプションのパラメータRoute::get('profile/{id?}', ['as' => 'viewProfile', 'uses' => 'ProfileController@view']);

このルートは、 domain.com/profile/23 23からアクセスできます。ここで、23はidパラメータです。このでは、 idはProfileController viewメソッドのパラメータとしてされます。これはオプションのパラメータであるため、 domain.com/profileうまくします。

パラメータRoute::get('profile/{id}', ['as' => 'viewProfile', 'uses' => 'ProfileController@view']);

なパラメータのには?がないことにしてください?パラメータのに。

コントローラのパラメータへのアクセスあなたのコントローラでは、viewメソッドはroutes.phpとじのパラメータをとり、ののようにうことができます。 Laravelはをします

public function view($id){ echo $id; }

すべてのルートをキャッチ

すべてのルートをキャッチするは、のようにをできます。

https://riptutorial.com/ja/home 160

Page 177: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

Route::any('{catchall}', 'CatchAllController@handle')->where('catchall', '.*');

のルートがあり、キャッチオールがしたくないは、にするがあります。えば

にされているのルートをすべてするRoute::get('login', 'AuthController@login'); Route::get('logout', 'AuthController@logout'); Route::get('home', 'HomeController@home'); // The catch-all will match anything except the previous defined routes. Route::any('{catchall}', 'CatchAllController@handle')->where('catchall', '.*');

ルートはされたでします

これはLaravelのルートによくあるです。ルートは、されているでします。にマッチするルートがされます。

このはりにします

Route::get('/posts/{postId}/comments/{commentId}', 'CommentController@show'); Route::get('/posts/{postId}', 'PostController@show');

/posts/1/comments/1へのgetリクエストは、 CommentController@showをびします。 /posts/1へのgetリクエストは、 PostController@showをびします。

ただし、このはじようにしません。

Route::get('/posts/{postId}', 'PostController@show'); Route::get('/posts/{postId}/comments/{commentId}', 'CommentController@show');

/posts/1/comments/1へのgetリクエストはPostController@showをびします。 /posts/1へのgetリクエストは、 PostController@showをびします。

Laravelはにしたルートをするため、 /posts/1/comments/1へのリクエストはRoute::get('/posts/{postId}', 'PostController@show');$postIdを1/comments/1します。これは、 CommentController@showがびされないことをします。

とをしないルート

Laravelのルートでは、とがされます。それは、

Route::get('login', ...);

/loginへのGETはし/loginが、 /LoginへのGETとはしません。

https://riptutorial.com/ja/home 161

Page 178: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

ルートをとをしないようにするには、されたURLとされたルートをするしいバリデータークラスをするがあります。しいバリデータとのバリデータとののいは、コンパイルされたルートののにiをして、とをしないをにすることです。

<?php namespace Some\Namespace; use Illuminate\Http\Request; use Illuminate\Routing\Route; use Illuminate\Routing\Matching\ValidatorInterface; class CaseInsensitiveUriValidator implements ValidatorInterface { public function matches(Route $route, Request $request) { $path = $request->path() == '/' ? '/' : '/'.$request->path(); return preg_match(preg_replace('/$/','i', $route->getCompiled()->getRegex()), rawurldecode($path)); } }

Laravelがしいバリデータをするには、URLとルートをし、のUriValidatorをあなたのものにきえるためにするマッチャーのリストをするがあります。

これをうには、routes.phpファイルのにのをします

<?php use Illuminate\Routing\Route as IlluminateRoute; use Your\Namespace\CaseInsensitiveUriValidator; use Illuminate\Routing\Matching\UriValidator; $validators = IlluminateRoute::getValidators(); $validators[] = new CaseInsensitiveUriValidator; IlluminateRoute::$validators = array_filter($validators, function($validator) { return get_class($validator) != UriValidator::class; });

これにより、のバリデータがされ、バリデータのリストにされます。

オンラインでルーティングをむ https://riptutorial.com/ja/laravel/topic/1284/ルーティング

https://riptutorial.com/ja/home 162

Page 179: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

54: ルートモデルバインディング

Examples

のバインド

Laravelは、がルートセグメントとするルートまたはコントローラアクションでされたEloquentモデルをにします。えば

Route::get('api/users/{user}', function (App\User $user) { return $user->email; });

このでは、にされたEloquent $ユーザがURIの{user}セグメントとするため、LaravelはURIからのするとするIDをつモデルインスタンスをにします。するモデルインスタンスがデータベースにつからないは、404 HTTPがにされます。

モデルのテーブルがのからされている、のモデルバインディングをさせるには、はすべてにするがあります。 たとえば、ユーザーがらかのアクションをでき、このアクションにアクセスしたい、ルートはのようになります。

Route::get('api/useractions/{useraction}', function (App\UserAction $useraction) { return $useraction->description; });

なバインディング

なバインディングをするには、ルータのモデルメソッドをして、されたパラメータのクラスをします。なモデルバインディングは、RouteServiceProviderクラスのbootメソッドでするがあります

public function boot() { parent::boot(); Route::model('user', App\User::class); }

に、{user}パラメータをむルートをできます。

$router->get('profile/{user}', function(App\User $user) { });

すべての{user}パラメータをApp\Userモデルにバインドしているので、Userインスタンスがルート

https://riptutorial.com/ja/home 163

Page 180: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

にされます。たとえば、 profile/1すると、 IDが1のデータベースからUserインスタンスがされます。

するモデルインスタンスがデータベースにつからないは、 404 HTTPがにされます。

オンラインでルートモデルバインディングをむ https://riptutorial.com/ja/laravel/topic/7098/ルートモデルバインディング

https://riptutorial.com/ja/home 164

Page 181: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

55: ルーメンフレームワーク

Examples

ルーメンのい

のは、 WAMP / MAMP / LAMPでLumenをするをしています。

Lumenするには、にカップルをセットアップするがあります。

•PHPUnit•git ではないがくされる•

これら3つのコンポーネントがすべてインストールされているとするとなくともコンポーザーがです、まずをしてWebサーバーのドキュメントルートにします。 MacOSXとLinuxにはらしいがしています。 Windowsではgit bash にはmingw32またはmingw64 をすることができます。

$ cd path/to/your/document/root

に、computeをしてLumenプロジェクトをインストールしてするがあります。のコマンドをします。

$ composer create-project laravel/lumen=~5.2.0 --prefer-dist lumen-project $ cd lumen-project

のコードのlumen-appはフォルダです。あなたはきなようにそれをすることができます。これで、ホストがpath/to/document/root/lumen-project/publicフォルダをすようにするがあります。 http://lumen-project.localをこのフォルダにマップしたとします。あなたがこのURLにくなら、のようなメッセージがされるはずですインストールされているLumenバージョンにじて、のは5.4.4でした -

Lumen (5.4.4) (Laravel Components 5.4.*)

lumen-project/routers/web.phpファイルをそこにくと、

$app->get('/', function () use($app) { return $app->version(); });

おめでとうこれでLumenインストールがLumen 。いいえ、このアプリケーションをしてカスタムエンドポイントをくことはできません。

オンラインでルーメンフレームワークをむ https://riptutorial.com/ja/laravel/topic/9221/ルーメンフレームワーク

https://riptutorial.com/ja/home 165

Page 182: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

56: レジLaravel Cashierは、BraintreeとStripeののサブスクリプションサービスにインターフェースをすることにより、サブスクリプションにできます。なサブスクリプションにえて、クーポンの、サブスクリプションの、、キャンセルの、およびPDFのにすることができます。

Examples

ストライプセットアップ

いをするためにStripeをするには、 composer.jsonをし、にcomposer updateするがあります。

"laravel/cashier": "~6.0"

のは、サービスプロバイダのconfig/app.phpするがあります。

Laravel\Cashier\CashierServiceProvider

データボックス

キャッシャーをするには、データベースをするがあります。ユーザーテーブルがしないは、ユーザーテーブルをし、サブスクリプションテーブルをするがあります。のは、のusersをします。 モデルのについては、 Eloquent Modelsをしてください。

キャッシャーをするには、しいをし、をするためにをしてください

// Adjust users table Schema::table('users', function ($table) { $table->string('stripe_id')->nullable(); $table->string('card_brand')->nullable(); $table->string('card_last_four')->nullable(); $table->timestamp('trial_ends_at')->nullable(); }); //Create subscriptions table Schema::create('subscriptions', function ($table) { $table->increments('id'); $table->integer('user_id'); $table->string('name'); $table->string('stripe_id'); $table->string('stripe_plan'); $table->integer('quantity'); $table->timestamp('trial_ends_at')->nullable(); $table->timestamp('ends_at')->nullable(); $table->timestamps(); });

https://riptutorial.com/ja/home 166

Page 183: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

その、データベースをphp artisan migrateために、 php artisan migrateをするがあります。

モデルセットアップ

に、 app/User.phpにあるUserモデルになをし、それをのようにするがあります。

use Laravel\Cashier\Billable; class User extends Authenticatable { use Billable; }

ストライプキー

たちがのStripeアカウントにをしておくためには、 config/services.phpファイルにのをするがあります。

'stripe' => [ 'model' => App\User::class, 'secret' => env('STRIPE_SECRET'), ],

STRIPE_SECRETをのストライプできえる。

、キャッシャーとストリップがセットアップされますので、ききサブスクリプションをすることができます。

オンラインでレジをむ https://riptutorial.com/ja/laravel/topic/7474/レジ

https://riptutorial.com/ja/home 167

Page 184: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

57:

Examples

まず、constants.phpファイルをしなければなりません。このファイルをapp / config /フォルダーにすることをおめします。また、compose.jsonファイルにconstants.phpファイルをすることもできます。

サンプルファイル

app / config / constants.php

ファイルのベースの

return [ 'CONSTANT' => 'This is my first constant.' ];

そしてあなたはファサードをむことでこのをることができますConfig

use Illuminate\Support\Facades\Config;

に、のようにCONSTANTでをします。

echo Config::get('constants.CONSTANT');

はのようになります。

これはののです。

オンラインでをむ https://riptutorial.com/ja/laravel/topic/9192/

https://riptutorial.com/ja/home 168

Page 185: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

58: につリンク

このトピックでは、Laravelのスキルをさせるための、またはのにつリンクをつけることができます。

Examples

ララベル

Laravel Scout - Laravel Scoutは、Eloquentモデルにフルテキストをするためのなドライバベースのソリューションをします。

Laravel Passport - のないAPI。 PassportはでがうOAuth2サーバーです。•

Homestead - のLaravelです。 VagrantによってされたHomesteadは、のPHP、MySQL、Postgres、Redisなどをして、チームにじページをします。

Laravel Cashier - みみのStripeとBraintreeのにより、のをいます。クーポン、サブスクリプションの、キャンセル、そしてPDFさえもすぐにできます。

Forge - DigitalOcean、Linode、およびAWSにのPHPアプリケーションをし、します。•

エンヴェイエ - ゼロダウンタイムPHP。•

Valet - Mac miniのためのLaravelな、いいえ、Apacheは、ぎ。•

スパーク - なSaaSアプリケーションの。ボイラープレートとアプリケーションにをてるのをやめてください。

ルーメン - なのはAPIとのですが、ルーメンをしてみてください。それはララベルです。•

Statamic - をにし、をせにし、クライアントがあなたをきめるようにされたのCMSです。•

ララキャスト - したスクリーンキャストをして、でなWebをぶ。•

ララベルニュース - ララベルとララベルニュースのをおけします。•

Laravel.io - オープンソースコードのフォーラム•

ポッドキャスト

ララベルニュースポッドキャスト•ララベルポッドキャスト•

オンラインでにつリンクをむ https://riptutorial.com/ja/laravel/topic/9957/につリンク

https://riptutorial.com/ja/home 169

Page 186: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

59:

Laravelは、のリソースにするユーザーのをするなをします。をすると、のリソースへのアクセスをにし、のリソースへのアクセスをすることができます。 Laravelは、 GatesとPoliciesをしてユーザーをするためのシンプルなAPIをします。 Gatesは、 AuthServiceProviderをしたへのなクロージャベースのアプローチをし、 Policiesはクラスをしてモデルのりにロジックをすることをにします。

Examples

ゲイツの

Gatesは、ユーザーがリソースにしてのアクションをできるかどうかをするクロージャです。 Gatesは、 AuthServiceProviderのブートメソッドでされ、 AuthServiceProviderをするためににがけられます。プレミアムユーザーだけがのコンテンツをできるようにするゲートのは、のようになります。

Gate::define('view-content', function ($user, $content){ return $user->isSubscribedTo($content->id); });

Gateは、にのとしてユーザーインスタンスをけります。ゲートをするときにゲートをすはなく、にじてなモデルなどののをけることもできます。

ゲートによるアクション

のをブレードテンプレートでして、ユーザーからのコンテンツをにするには、のようにします。

@can('view-content', $content) <! -- content here --> @endcan

コンテンツへのナビゲーションをにするには、コントローラでのをできます。

if(Gate::allows('view-content', $content)){ /* user can view the content */ } OR if(Gate::denies('view-content', $content)){ /* user cannot view content */ }

https://riptutorial.com/ja/home 170

Page 187: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

これらのメソッドにされているユーザーをすはありませんが、Laravelがそれをします。

ポリシー

ポリシーとは、モデルリソースのにをするのにつクラスです。のをすると、 ContentモデルへのユーザーアクセスをするContentPolicyとします。

ContentPolicyをするために、laravelはのコマンドをします。にする

php artisan make:policy ContentPolicy

のポリシークラスがされ、 app/Policiesフォルダにされます。フォルダがしない、Laravelはフォルダをし、クラスをにします。

したポリシーは、Laravelがモデルのアクションをするにするポリシーをるのをけるためにするがあります。 LaravelのAuthServiceProviderにはしくLaravelがインストールされていますが、あなたのなモデルをポリシーにマップするポリシープロパティがあります。へのマッピングをするだけです。

protected $policies = [ Content::class => ContentPolicy::class, ];

ポリシーの

Policiesをくことは、 Gatesをくこととじパターンにいます。コンテンツゲートは、のようなポリシーとしてきえられます。

function view($user, $content) { return $user->isSubscribedTo($content->id); }

ポリシーには、モデルのすべてのケースをするために、にじてよりくのメソッドをめることができます。

ポリシーによるアクションの

ユーザーモデルをして

Laravel Userモデルには、 Policiesをしたにつ2つのメソッドがあります。 can can't 。これらの2つをして、ユーザーがそれぞれモデルでをっているかどうかをできます。

ユーザーがコンテンツをできるかどうかをするには、のをいます。

if($user->can('view', $content)){ /* user can view content */ }

https://riptutorial.com/ja/home 171

Page 188: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

OR if($user->cant('view', $content)){ /* user cannot view content */ }

ミドルウェア

Route::get('/contents/{id}, function(Content $content){ /* user can view content */ })->middleware('can:view,content');

コントローラで

Laravelはとばれるヘルパーメソッド、authorizeとしてポリシーのとするモデルをり、どちらかあなたのロジックにづいてアクションをまたはアクションをし、スローAuthorizationException

Laravelハンドラがに403 HTTP response 。

pubic function show($id) { $content = Content::find($id); $this->authorize('view', $content); /* user can view content */ }

オンラインでをむ https://riptutorial.com/ja/laravel/topic/9360/

https://riptutorial.com/ja/home 172

Page 189: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

60:

パラメーター

パラメータ

フィールドはです

々そのフィールドがにするにのみ、そのフィールドにしてチェックをします

Eメール はなメールです

はにするがあります

ユニークdb_table_name

は、されたデータベーステーブルでであるがあります

けれられた はい/オン/ 1 TOSをチェックするのに

active_url checkdnsrrによるとなURLであるがあります

のフィールドは、されたのにをするがあります

アルファ のフィールドはにでなければなりません。

アルファダッシュ のフィールドには、ダッシュ、アンダースコアをできます。

alpha_num のフィールドはにでなければなりません。

アレイ PHP でなければならない

フィールドは、されたののでなければなりません

のmin、max は、minとmaxのにあるがあります

ブールのフィールドはブールとしてキャストできなければなりません。けけたされtrue 、 false 、 1 、 0 、 "1"び"0"

みのフィールドには、するフィールドfoo_confirmationがfoo_confirmation

です。たとえば、のフィールドがpassword、するpassword_confirmationフィールドがにするがあります。

のフィールドは、 strtotime PHPにってなでなければなりません。

のフィールドはでなければなりません

https://riptutorial.com/ja/home 173

Page 190: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

パラメータ

のフィールドはでなければなりません。

Examples

validateメソッド ValidatesRequestsによってされるベースコントローラーでをして、データをすることができます。

ルールがすると、コードはにされけます。ただし、にすると、エラーをむエラーがにされます。

なHTMLフォームの、ユーザーはフォームをしたをしたで、のページにリダイレクトされます

JSONをするの、コード422のHTTPがされます•

たとえば、 UserControllerでは、しいユーザーをstoreメソッドにしているがあります。するにがです。

/** * @param Request $request * @return Response */ public function store(Request $request) { $this->validate($request, [ 'name' => 'required', 'email' => 'email|unique:users|max:255' ], // second array of validation messages can be passed here [ 'name.required' => 'Please provide a valid name!', 'email.required' => 'Please provide a valid email!', ]); // The validation passed }

のでは、 nameフィールドがでないですることをします。に、 emailフィールドになメールがあり、データベーステーブルの "users"でで、が255であることをします。

| パイプは、1つのフィールドにしてなるをみわせています。

によっては、のにしたでにするルールのをすることもできます。これをうには、 bailルールをにりてます。

$this->validate($request, [ 'name' => 'bail|required', 'email' => 'email|unique:users|max:255' ]);

https://riptutorial.com/ja/home 174

Page 191: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

なルールのなリストは、 のパラメータセクションにあります 。

アレイバリデーション

フォームのフィールドのはにです。

されたの、メール、およびのをするがあるとします。あなたはをうことができます

$validator = \Validator::make($request->all(), [ 'name.*' => 'required', 'email.*' => 'email|unique:users', 'fatherName.*' => 'required' ]); if ($validator->fails()) { return back()->withInput()->withErrors($validator->errors()); }

Laravelはのためのデフォルトのメッセージをします。ただし、ベースのフィールドのカスタムメッセージがなは、のコードをできます。

[ 'name.*' => [ 'required' => 'Name field is required', ], 'email.*' => [ 'unique' => 'Unique Email is required', ], 'fatherName.*' => [ 'required' => 'Father Name required', ] ]

なコードはのようになります

$validator = \Validator::make($request->all(), [ 'name.*' => 'required', 'email.*' => 'email|unique:users', 'fatherName.*' => 'required', ], [ 'name.*' => 'Name Required', 'email.*' => 'Unique Email is required', 'fatherName.*' => 'Father Name required', ]); if ($validator->fails()) { return back()->withInput()->withErrors($validator->errors()); }

そののアプローチ

1フォームリクエストの

https://riptutorial.com/ja/home 175

Page 192: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

アプリケーションののにして、ロジック、ルール、およびエラーメッセージをできる「フォーム」をすることができます。

make:request Artisan CLIコマンドは、クラスをし、 app/Http/Requestsディレクトリにします。

php artisan make:request StoreBlogPostRequest

authorizeメソッドは、このリクエストのロジックでオーバーライドできます。

public function authorize() { return $this->user()->can('post'); }

rulesメソッドは、このリクエストののルールでオーバーライドできます。

public function rules() { return [ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]; }

messagesメソッドは、このののメッセージをにすることができます。

public function messages() { return [ 'title.required' => 'A title is required', 'title.unique' => 'There is another post with the same title', 'title.max' => 'The title may not exceed :max characters', 'body.required' => 'A message is required', ]; }

リクエストをするには、するコントローラメソッドにのリクエストクラスをタイプヒントしてください。にすると、エラーがされます。

public function store(StoreBlogPostRequest $request) { // validation passed }

2でバリデータをする

をめるために、ツールをでし、したをすることができます。

<?php namespace App\Http\Controllers;

https://riptutorial.com/ja/home 176

Page 193: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

use Validator; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class PostController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]); if ($validator->fails()) { return redirect('post/create') ->withErrors($validator) ->withInput(); } // Store the blog post... } }

2にルールをする

によっては、サービスプロバイダのboot()メソッドをしてのルールをするがあるがあります.Laravel 5.4ではRuleクラスをしてしいルールをできます。

として、ユーザーをまたはするのために、 UserRequestをしてします。のところ、がで、メールアドレスはでなければなりません。 uniqueルールをするのは、ユーザーをしているときにじメールをするがあるため、のユーザーをルールからするがあるということです。のは、しいRuleクラスをしてにこれをうをしています。

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Request; use Illuminate\Validation\Rule; class UserRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules(Request $request)

https://riptutorial.com/ja/home 177

Page 194: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

{ $id = $request->route()->getParameter('user'); return [ 'name' => 'required', // Notice the value is an array and not a string like usual 'email' => [ 'required', Rule::unique('users')->ignore($id) ] ]; } }

POST、PUT、PATCHのフォームクラス

'Form Request Validation'のにえば、じリクエストクラスをPOST 、 PUT 、 PATCHできるので、じ/のバリデーションをしてのクラスをするはありません。これは、テーブルにのがあるにです。

/** * Get the validation rules that apply to the request. * * @return array */ public function rules() { switch($this->method()) { case 'GET': case 'DELETE': return []; case 'POST': return [ 'name' => 'required|max:75|unique', 'category' => 'required', 'price' => 'required|between:0,1000', ]; case 'PUT': case 'PATCH': return [ 'name' => 'required|max:75|unique:product,name,' . $this->product, 'category' => 'required', 'price' => 'required|between:0,1000', ]; default:break; } }

からに、switchはリクエストのメソッドタイプ GET 、 DELETE 、 POST 、 PUT 、 PATCH をべます。

メソッドにじて、されたルールのをします。のnameフィールドのようにのフィールドがある、するののIDをするがあります。

'field_name' => 'unique:table_name,column_name,' . $idToIgnore`

idのラベルがけられたキーがあるは、キーを4のパラメータとしてします。

https://riptutorial.com/ja/home 178

Page 195: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

'field_name' => 'unique:table_name,column_name,' . $idToIgnore . ',primary_key_column'

このでは、 PUTをして、プロダクトIDのをルート admin/products/{product} にしています。したがって、 $this->productはするidとしくなります。

PUT|PATCHとPOSTはじであるはありません。にったロジックをします。このでは、カスタムフォームクラスでしたカスタムメッセージをすることができます。

エラーメッセージ

エラーメッセージのカスタマイズ

/resources/lang/[lang]/validation.phpファイルには、バリデーターがするエラーメッセージがまれています。にじてすることができます。

それらのほとんどには、エラーメッセージをするときににきえられるプレースホルダがあります。

たとえば、 'required' => 'The :attribute field is required.' :attributeプレースホルダはフィールドにきえられますまたは、じファイルのattributesのフィールドのをカスタマイズすることもできます。

メッセージ

'required' => 'Please inform your :attribute.', //... 'attributes => [ 'email' => 'E-Mail address' ]

ルール

`email' => `required`

としてじるエラーメッセージ

"あなたのEメールアドレスをおらせください。"

Requestクラスのエラーメッセージのカスタマイズ

Requestクラスはをすべきmessages()メソッドにアクセスできます。これはlangファイルにることなくメッセージをオーバーライドするためにできます。たとえば、カスタムのfile_existsがある、のようなメッセージをできます。

class SampleRequest extends Request {

https://riptutorial.com/ja/home 179

Page 196: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

/** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'image' => 'required|file_exists' ]; } /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } public function messages() { return [ 'image.file_exists' => 'That file no longer exists or is invalid' ]; } }

エラーメッセージの

エラーはセッションにフラッシュされ、 $errorsでもできます。これはにすべてのビューにされます。

ブレードビューでエラーをする

@if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif

カスタムルール

カスタムルールをするは、Validatorファサードをして、サービスプロバイダのbootメソッドなどでカスタムルールをできます。

https://riptutorial.com/ja/home 180

Page 197: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Validator; class AppServiceProvider extends ServiceProvider { public function boot() { Validator::extend('starts_with', function($attribute, $value, $parameters, $validator) { return \Illuminate\Support\Str::startsWith($value, $parameters[0]); }); Validator::replacer('starts_with', function($message, $attribute, $rule, $parameters) { return str_replace(':needle', $parameters[0], $message); }); } }

extendメソッドは、ルールのとなると、の、される、ルールパラメータの、およびバリデータインスタンスをすをります。はになります。このでは、のがされたでまるかどうかをしています。

このカスタムルールのエラーメッセージは、/resources/lang/[lang]/validation.phpファイルででき、パラメータなどのプレースホルダをめることができます。

'starts_with' => 'The :attribute must start with :needle.'

replacerメソッドは、ルールのであると、ののメッセージ、の、ルールの、およびルールパラメータのをにすをります。にじてプレースホルダをきえたにメッセージをすがあります。

このルールをのルールとじようにします。

$this->validate($request, [ 'phone_number' => 'required|starts_with:+' ]);

オンラインでをむ https://riptutorial.com/ja/laravel/topic/1310/

https://riptutorial.com/ja/home 181

Page 198: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

61:

Examples

インストール

composer require laravel/socialite

このインストールでは、 ComposerをってLaravelでをしていることをとしています。これはです。

あなたのconfig\services.phpにのコードをすることができます

'facebook' => [ 'client_id' => 'your-facebook-app-id', 'client_secret' => 'your-facebook-app-secret', 'redirect' => 'http://your-callback-url', ],

config\app.phpもプロバイダをするがあります

'providers' => []をし、にのものをします

'providers' => [ ... Laravel\Socialite\SocialiteServiceProvider::class, ]

ファサードは、パッケージとともにされています。そのいをしたいのなら、 aliasesあなたのconfig\app.php にのコードがあることをしてください

'aliases' => [ .... 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ]

な - ファサード

return Socialite::driver('facebook')->redirect();

これにより、がされるなURLにリダイレクトされます。なはコントローラにあります

<?php namespace App\Http\Controllers\Auth;

https://riptutorial.com/ja/home 182

Page 199: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

use Socialite; class AuthenticationController extends Controller { /** * Redirects the User to the Facebook page to get authorization. * * @return Response */ public function facebook() { return Socialite::driver('facebook')->redirect(); } }

app\Http\routes.phpファイルに、ここでをするルートがあることをしてください。

Route::get('facebook', 'App\Http\Controllers\Auth\AuthenticationController@facebook');

な -

/** * LoginController constructor. * @param Socialite $socialite */ public function __construct(Socialite $socialite) { $this->socialite = $socialite; }

コントローラのコンストラクタで、ソーシャルネットワークでのログインにつSocialiteクラスをできるようになりました。これはファサードのをきえます。

/** * Redirects the User to the Facebook page to get authorization. * * @return Response */ public function facebook() { return $this->socialite->driver('facebook')->redirect(); }

APIのソーシャルサイト - ステートレス

public function facebook() { return $this->socialite->driver('facebook')->stateless()->redirect()->getTargetUrl(); }

これにより、FacebookのをるためにAPIのコンシューマーがエンドユーザーにするがあるURLがされます。

オンラインでをむ https://riptutorial.com/ja/laravel/topic/1312/

https://riptutorial.com/ja/home 183

Page 200: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

62:

php artisan [コマンド] [オプション] []•

パラメーター

コマンド

クリアコンパイルされた

コンパイルされたクラスファイルをする

ダウン アプリケーションをモードにする

env のフレームワークをする

けて コマンドのヘルプをします。

リスト リストコマンド

する データベースのをする

する よりいパフォーマンスのためにフレームワークをする

する PHPサーバーでアプリケーションをする

れ アプリケーションとのインタラクション

アップ アプリケーションをメンテナンスモードからする

アプリ アプリケーションのをする

authクリアリセット れのパスワードリセットトークンをフラッシュする

キャッシュクリア アプリケーションキャッシュをフラッシュする

キャッシュテーブル キャッシュデータベーステーブルのをする

configキャッシュ よりいみみのためのキャッシュファイルをする

configclear キャッシュファイルをする

dbシード データベースにレコードをシードする

イベントする にづいてしているイベントとリスナーをする

キーする アプリケーションキーをする

https://riptutorial.com/ja/home 184

Page 201: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

コマンド

makeauth のなログインとのビューとルート

makeconsole しいアーティザンコマンドをする

makeコントローラ しいコントローラクラスをする

makeイベント しいイベントクラスをする

make しいジョブクラスをする

makeリスナー しいイベントリスナクラスをする

makeミドルウェア しいミドルウェアクラスをする

makeマイグレーション しいファイルをする

makeモデル しいEloquentモデルクラスをする

makeポリシー しいポリシークラスをする

makeprovider しいサービスプロバイダクラスをする

makeリクエスト しいフォームクラスをする

makeシーダー しいシーダークラスをする

makeテスト しいテストクラスをする

migrateinstall リポジトリの

リフレッシュ すべてのをリセットしてする

リセット すべてのデータベースをロールバックする

ロールバック のデータベースをロールバックする

ステータス のステータスをする

キューしました すべてのしたキュージョブをする

キューしたテーブル したキュージョブデータベーステーブルのをする

キューフラッシュする すべてのしたキュージョブをフラッシュする

キューれる したキュージョブをする

キューく のちをく

https://riptutorial.com/ja/home 185

Page 202: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

コマンド

キュー のジョブのでキューワーカーデーモンをする

キュー したキュージョブをする

キューテーブル キュージョブデータベーステーブルのをする

キュー キューののジョブをする

ルートキャッシュ ルートをするためのルートキャッシュファイルの

ルートクリア ルートキャッシュファイルをする

ルートリスト すべてのみルートをする

スケジュール スケジュールされたコマンドをする

セッションテーブル セッションデータベーステーブルのをする

ベンダーベンダーパッケージからパブリッシュなアセットをパブリッシュする

ビュークリア すべてのコンパイルみビューファイルをする

Examples

Artisanは、bashコマンドをしてのりしタスクをするのにつユーティリティです。データベースでのそれはめて、くのタスク、カバーおよび 、 キャッシュをクリアし 、 のセットアップになファイルをし、しいコントローラ、モデル、イベントクラス 、およびよりくをうことを 。

Artisanは、Laravelにまれているコマンドラインインターフェイスのです。アプリケーションをするにつくのコマンドがされています。

なすべてのArtisanコマンドのリストをするには、listコマンドをします。

php artisan list

なコマンドのをるには、そののにhelpキーワードをつけてください

php artisan help [command-name]

のでフィルタリングされたすべてのみルートをする

https://riptutorial.com/ja/home 186

Page 203: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

php artisan route:list --method=GET --method=POST

これには、 GETメソッドとPOSTメソッドをにけれるすべてのルートがまれます。

PHPコードをしてLaravel Artisanコマンドをする

ルートまたはコントローラからLaravel Artisanコマンドをすることもできます。

PHPコードをしてコマンドをするには

Artisan::call('command-name');

えば、

Artisan::call('db:seed');

しいコマンドのと

あなたはからしいコマンドをすることができます

php artisan make:command [commandName]

これにより、 app/Console/Commandsディレクトリに[commandName]コマンドクラスがされます。

このクラスのには、 protected $signatureとprotected $descriptionがあります。これは、あなたのコマンドをするためにされるあなたのコマンドのとディスクリプションをします。

コマンドをした、 commandsプロパティをつけるapp/Console/Kernel.phpクラスにコマンドをすることができcommands 。

のような$コマンドのにコマンドをすることができます

protected $commands = [ Commands\[commandName]::class ];

コンソールからのコマンドをすることができます。

として、のようなをけました。

protected $signature = 'test:command';

だからはいつでもります

php artisan test:command

test:commandをつクラスのでhandleメソッドをびします。

https://riptutorial.com/ja/home 187

Page 205: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

63:

Examples

オブザーバーをする

オブザーバーは、Laravelののモデルのライブサイクルコールバックをくためにされます。 これらのリスナーは、のいずれかのをくことができます。

•した•する•しました•

•された•する•された•する•された•

オブザーバーのです。

UserObserver

<?php namespace App\Observers; /** * Observes the Users model */ class UserObserver { /** * Function will be triggerd when a user is updated * * @param Users $model */ public function updated($model) { // execute your own code } }

ユーザーオブザーバーにされているように、されたアクションをきますが、このクラスがにユーザーモデルをリッスンするに、にEventServiceProviderにするがあります。

EventServiceProvider

https://riptutorial.com/ja/home 189

Page 206: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

<?php namespace App\Providers; use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use App\Models\Users; use App\Observers\UserObserver; /** * Event service provider class */ class EventServiceProvider extends ServiceProvider { /** * Boot function * * @param DispatcherContract $events */ public function boot(DispatcherContract $events) { parent::boot($events); // In this case we have a User model that we want to observe // We tell Laravel that the observer for the user model is the UserObserver Users::observe(new UserObserver()); } }

オブザーバをしたので、されたはユーザモデルをしたにびされます。

オンラインでをむ https://riptutorial.com/ja/laravel/topic/7128/

https://riptutorial.com/ja/home 190

Page 207: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

64:

Examples

マルチ

Laravelでは、のガードにのタイプをできます。

laravel 5.3ではのがLaravel 5.2としなります

は5.3でmultiauthenticationをするをします

まず、2つのなるユーザーモデルがです

cp App/User.php App/Admin.php

クラスをAdminにし、なるモデルをするはをします。それはのようになります

App \ Admin.php

<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class Admin extends Authenticatable { use Notifiable; protected $fillable = ['name', 'email', 'password']; protected $hidden = ['password', 'remember_token']; }

また、のをするがあります

php artisan make:migration create_admins_table

デフォルトのユーザーのをむファイルをします。このようにえる

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateAdminsTable extends Migration {

https://riptutorial.com/ja/home 191

Page 208: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

/** * Run the migrations. * * @return void */ public function up() { Schema::create('admins', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); $table->softDeletes(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('admins'); } }

edit config / auth.php

'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], //Add Admin Guard 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], ],

そして

'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], //Add Admins Provider 'admins' => [ 'driver' => 'eloquent',

https://riptutorial.com/ja/home 192

Page 209: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

'model' => App\Admin::class, ], ],

2つのエントリをすることにしてください。 1つはガードのの1つはプロバイダーです。

そして、これはあなたがのガードをして "web"

のApp \ Http \ Controllers \ Admin \ LoginController

<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Support\Facades\Auth; class AuthController extends Controller { use AuthenticatesUsers; protected $guard = 'admin'; protected $redirectTo = '/admin/'; public function showLoginForm() { return view('admin.login'); } protected function guard() { return Auth::guard($this->guard); } }

これはほとんどがありません。

Auth :: guard 'admin'はガードにログイン、ログアウト、などをできるようにします。

えば

Auth::guard('admin')->login($user)

adminsテーブルの$ userをし、そのにユーザーとログインします

Auth::login($user)

usersテーブルでにします。デフォルトガードはconfig / auth.phpでdefaultsでされています。なララベルでは、それは "ウェブ"です。

https://riptutorial.com/ja/home 193

Page 210: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

コントローラでは、カスタムビューパスをするためにAuthenticatesUsersからメソッドをするがあります。そして、あなたのしいユーザーガードをするためにガードのようなのをするがあります。

このでは、ログインはadmin / login.bladeです

そして、 Auth :: guard 'admin'をすためのguardをすることによって、すべてのAuthenticatesUsers traitメソッドが "admin"ガードでします。

のバージョンのlaravelでは、5.3とほとんどいがありません

5.2のgetGuardはクラスとmainログインから$ guardをします。

Auth::guard($guard)->attempt(...)

5.3ガードは、Auth :: guardをし、mainはそれをきなようにいます

$this->guard()->attempt(...)

オンラインでをむ https://riptutorial.com/ja/laravel/topic/7051/

https://riptutorial.com/ja/home 194

Page 211: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

65:

Examples

メールのは、アプリケーションの.ENVファイルにのをメールプロバイダのログインとともに/するだけでできます。たとえば、gmailでするなどです。

MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 [email protected] MAIL_PASSWORD=yourPassword MAIL_ENCRYPTION=tls

に、Mailをしてメールをすることができます。

$variable = 'Hello world!'; // A variable which can be use inside email blade template. Mail::send('your.blade.file', ['variable' => $variable], function ($message) { $message->from('[email protected]'); $message->sender('[email protected]'); $message->to([email protected]); $message->subject('Hello World'); });

オンラインでをむ https://riptutorial.com/ja/laravel/topic/8014/

https://riptutorial.com/ja/home 195

Page 212: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

クレジット

S. No

Contributors

1 Laravelをいめる

alepeino, Alphonsus, boroboris, Colin Herzog, Community, Ed Rands, Evgeniy Maynagashev, Gaurav, Imam Assidiqqi, James, Ketan Akbari, Kovah, Lance Pioch, Marek Skiba, Martin Bean, Misa Lazovic, nyedidikeke, Oliver Adria, Prakash, rap-2-h, Ru Chern Chong, SeinopSys, Tatranskymedved, Tim

2AJAXのトークンのエラー

Pankaj Makwana

3 Cronの A. Raza

4 Eloquent

aimme, alepeino, Alessandro Bassi, Alex Harris, Alfa, Alphonsus, andretzermias, andrewtweber, Andrey Lutskevich, aynber, Buckwheat, Casper Spruit, Dancia, Dipesh Poudel, Ian, Imam Assidiqqi, James, James, jedrzej.kurylo, John Slegers, Josh Rumbut, Kaspars, Ketan Akbari, KuKeC, littleswany, Lykegenes, Maantje, Mahmood, Marco Aurélio Deleu, marcus.ramsden, Marek Skiba, Martin Bean, matiaslauriti, MM2, Nicklas Kevin Frank, Niklas Modess, Nyan Lynn Htut, patricus, Pete Houston, Phroggyy, Prisoner Raju, RamenChef, rap-2-h, Rubens Mariuzzo, Sagar Naliyapara, Samsquanch, Sergio Guillen Mantilla, Tim, tkausl, whoan, Yasin Patel

5

Eloquent Relationshipのマクロ

Alex Casajuana, Vikash

6Eloquentアクセッサミューテータ

Diego Souza, Kyslik

7 Eloquentモデル

Aeolingamenfel, alepeino, Alex Harris, Imam Assidiqqi, John Slegers, Kaspars, littleswany, Marco Aurélio Deleu, marcus.ramsden, Marek Skiba, matiaslauriti, Nicklas Kevin Frank, Samsquanch, Tim

8 EloquentAdvaith, aimme, Alex Harris, Alphonsus, bhill77, Imam Assidiqqi, Ketan Akbari, Phroggyy, rap-2-h, Ru Chern Chong, Zulfiqar Tariq

9Eloquentのフィールドエイリアスをする

MM2

https://riptutorial.com/ja/home 196

Page 213: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

10HTMLとフォームビルダ

alepeino, Casper Spruit, Himanshu Raval, Prakash

11Laravel 5.2.31 +のデフォルトのルーティングをする

Frank Provost

12Laravel 5.4とのSparkpostの

Alvin Chettiar

13 laravel-5.2のA. Raza, ashish bansal, Community, Edward Palen, Ivanka Todorova, Shubhamoy

14 laravel-5.3の Ian

15 laravel-5.3をいめるA. Raza, Advaith, Community, davejal, Deathstorm, Manish, Matthew Beckman, Robin Dirksen, Shital Jachak

16LaravelにおけるのDB

4444, A. Raza, Rana Ghosh

17LaravelのCustomExceptionクラス

ashish bansal

18laravelのURLからパブリックをする

A. Raza, Rana Ghosh, ultrasamad

19

LinuxサーバのホスティングにLaravel 5アプリケーションをする

Donkarnash, Gayan, Imam Assidiqqi, Kyslik, PassionInfinite, Pete Houston, rap-2-h, Ru Chern Chong, Stojan Kukrika, ultrasamad

20WindowsでLaravelをしてアップロードするときのファイルの

Donkarnash, RamenChef

21 イベントとリスナー Bharat Geleda, matiaslauriti, Nauman Zafar

22 インストール

A. Raza, alepeino, Alphonsus, Black, boroboris, Gaurav, Imam Assidiqqi, James, Ketan Akbari, Lance Pioch, Marek Skiba, Martin Bean, nyedidikeke, PaladiN, Prakash, rap-2-h, Ru Chern Chong, Sagar Naliyapara, SeinopSys, Tim

23 インストールガイドAdvaith, Amarnasan, aynber, Community, davejal, Dov Benyomin Sohacheski, Imam Assidiqqi, PaladiN, rap-2-h, Ru Chern Chong

https://riptutorial.com/ja/home 197

Page 214: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

24 エラー Isma, Kyslik, RamenChef, Rubens Mariuzzo

25 カスタムヘルパー Ian, Luceos, rap-2-h, Raunak Gupta

26 キュー Alessandro Bassi, Kyslik

27クロスドメインリクエスト

Imam Assidiqqi, Suraj

28 コレクション

A. Raza, Alessandro Bassi, Alex Harris, bhill77, caoglish, Dummy Code, Gras Double, Ian, Imam Assidiqqi, Josh Rumbut, Karim Geiger, matiaslauriti, Nicklas Kevin Frank, Ozzy, rap-2-h, simonhamp, Vucko

29 コントローラ Ru Chern Chong

30 サービス A. Raza, El_Matella

31 シードA. Raza, Alphonsus, Ian, Imam Assidiqqi, Kyslik, SupFrost, whoan

32ストレージのアクセス

A. Raza

33タスクスケジューリング

Jonathon

34 ディレクトリ Kaspars, Moppo, RamenChef

35 データベースA. Raza, adam, caoglish, Ian, Iftikhar uddin, Imam Assidiqqi, liamja, Panagiotis Koursaris, RamenChef, Rubens Mariuzzo, Sanzeeb Aryal, Vucko

36 データベースシードAchraf Khouadja, Andrew Nolan, Dan Johnson, Isma, Kyslik, Marco Aurélio Deleu

37 データベースのChris, Chris White, Hovsep, hschin, Iftikhar uddin, Imam Assidiqqi, Kaspars, liamja, littleswany, mnoronha, Nauman Zafar, Panagiotis Koursaris, Paulo Freitas, Vucko

38 テストAlessandro Bassi, Brayniverse, caoglish, Julian Minde, Kyslik, rap-2-h, Sven

39 バレーDavid Lartey, Dov Benyomin Sohacheski, Imam Assidiqqi, Misa Lazovic, Ru Chern Chong, Shog9

40ファイルシステム/クラウドストレージ

Imam Assidiqqi, Nitish Kumar, Paulo Laxamana

https://riptutorial.com/ja/home 198

Page 215: Laravel - RIP TutorialUbuntu 16.0414.04LinuxMintLaravel 5.1 Framework 36 14: laravel-5.3 40 40 Examples 40 $ loop 40 15: laravel-5.3 41 41 Examples 41 Laravel 41 Laravel 41 Composer

41 フォームリクエスト Bookeater, Ian, John Roca, Kyslik, RamenChef

42ブレードテンプレート

A. Raza, agleis, Akshay Khale, alepeino, Alessandro Bassi, Benubird, cbaconnier, Christophvh, Imam Assidiqqi, matiaslauriti, Nauman Zafar, rap-2-h, Safoor Safdar, Tosho Trajanov, yogesh

43 ページネーション Himanshu Raval, Iftikhar uddin

44 ヘルパー aimme

45 ポリシー Tosho Trajanov

46 ミドルウェア Alex Harris, Kaspars, Kyslik, Moppo, Pistachio

47 よくあるとすばやい Nauman Zafar

48ラーベールパッケージ

Casper Spruit, Imam Assidiqqi, Ketan Akbari, rap-2-h, Ru Chern Chong, Tosho Trajanov

49 ララベルドッカー Dov Benyomin Sohacheski

50 リクエスト Ian, Jerodev, RamenChef, Rubens Mariuzzo

51 ルーティングA. Raza, alepeino, Alessandro Bassi, Alex Juchem, beznez, Dwight, Ilker Mutlu, Imam Assidiqqi, jedrzej.kurylo, Kyslik, Milan Maharjan, Rubens Mariuzzo, SeinopSys, Vucko

52ルートモデルバインディング

A. Raza, GiuServ, Vikash

53ルーメンフレームワーク

maksbd19

54 レジ littleswany, RamenChef

55 Mubashar Iqbal, Oscar David, Zakaria Acharki

56 につリンク Jakub Kratina

57 Daniel Verem

58

A. Raza, alepeino, Alessandro Bassi, Alex Harris, Andrew Nolan, happyhardik, Himanshu Raval, Ian, Iftikhar uddin, John Slegers, Marco Aurélio Deleu, matiaslauriti, rap-2-h, Rubens Mariuzzo, Safoor Safdar, Sagar Naliyapara, Stephen Leppik, sun, Vucko

59 Jonathon, Marco Aurélio Deleu

https://riptutorial.com/ja/home 199


Recommended