资源说明:Laravel 5.2 初学者指南
Laraboot: Laravel 5 For Beginners
Bill Keck
This book is for sale at http://leanpub.com/laravel-5-for-beginners-laraboot
This version was published on 2016-04-04
This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing
process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and
many iterations to get reader feedback, pivot until you have the right book and build traction once
you do.
© 2015 - 2016 Bill Keck
Contents
Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
What Makes The Laravel Framework Special? . . . . . . . . . . . . . . . . . . . . . . . . 3
Upsides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Downsides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Why I chose Laravel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Why I’m Writing This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Artisan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
MySql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Minimum PHP Skills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
W3 Schools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
MInimum HTML and CSS skills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Minimum Javascript Skills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Errata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Contact Bill Keck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Laraboot on Github . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Chapter 2: The Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
The Fun Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
MAC or Windows? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
MAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Minimum Version of PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Homebrew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Command Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chapter 3: Installation of Laravel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Composer install of Laravel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
CONTENTS
Create Project in IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Setup Local Host file: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Vhost Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
httpd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
MOD Rewrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Restart Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Chapter 4: Let’s Get Started With Laravel . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Set Up The Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Initial Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Diving Into Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Setup the DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
.env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Application Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Basic Stitching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
The Style Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Creating a Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Creating a Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Artisan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
RESTful pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Namespaces and Use Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Index Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Blade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Creating A Master Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
CDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
View Partials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Full Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Chapter 5: User Registration And Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
User Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Migrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Installing the Dbal Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Make Auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
AuthController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Traits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Gravatar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Facades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
CONTENTS
Bootstrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Pages Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
New Nav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Auth Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Auth Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
emails view folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
password.blade.php. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Config Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
passwords view folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
email.blade.php view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
reset.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Auth View Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
register.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
login.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Chapter 6: Working with the RESTful Pattern . . . . . . . . . . . . . . . . . . . . . . . . . 121
Sweet Alert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Model Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Route Resource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
RESTful Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Collective HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Errors List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Store Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Die and Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Index Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Datatables Jquery Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Datatables CDN Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Datatables CSS CDN Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
The API Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Api/Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Test the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Index View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Datatable Partial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Datatable-script Partial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Slugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Changing the Store Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Create the Slug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Changing the Create Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Add Auth Use Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
CONTENTS
Change $fillable Property on Widget Model . . . . . . . . . . . . . . . . . . . . . . . . . 171
Basic Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Change widgetData Method on ApiController . . . . . . . . . . . . . . . . . . . . . . . . 173
Change datatable.blade Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Change datatable-script.blade.php to Add Columns . . . . . . . . . . . . . . . . . . . . . 174
Add Middleware to WidgetController . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Change Routes to Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Show Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Accessors and Mutators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Edit Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Update Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Destroy Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
404.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Nav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Chapter 7: Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
OwnsRecord Trait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Modify User Table Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
User $fillable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Admin Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
AllowIfAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
isAdmin Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Admin Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
NoActiveAccountException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Modifying the Auth Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
AuthController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Update Users Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Registration Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
register.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Users Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Update User $fillable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
AuthController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Create Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Terms Of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Chapter 8: Socialite - One Click Facebook Login . . . . . . . . . . . . . . . . . . . . . . . . 261
Facebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Modify Users Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
CONTENTS
Mass Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Social Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
session.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
InvalidStateException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Set up Facebook App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Step 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Step 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Step 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Step 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Step 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Step 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Step 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Step 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Step 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Step 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Step 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Step 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Step 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Integrating Socialite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
AuthController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Navigation To Facebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Chapter 9: Profile, Settings and Admin Dash . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
my-profile and show-profile Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Add Profile to Nav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Profile Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Show View - Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Index View - Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Edit View - Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
API Route for Profile: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
profileData Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Datatable-script - Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Datatable View - Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Users For Admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
UserController.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
UserRequest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
User Model changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
HasModelTrait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Index View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Datatable View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Datatable-script View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
CONTENTS
Show View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Edit View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Navigation to Users & Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Settings Routes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
SettingsController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Create Settings View Folder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Edit View For Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Add Settings To Nav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Admin Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Add Facebook sign in buttons to Login and Register Views . . . . . . . . . . . . . . . . . 388
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Chapter 10: Working With Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Create imgs, marketing-images, and thumbnails folder. . . . . . . . . . . . . . . . . . . . 392
Create Image Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Show Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Add Accessor Methods to MarketingImage Model . . . . . . . . . . . . . . . . . . . . . . 423
show view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Edit view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Edit Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Edit Image Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Update method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Destroy Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Api route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
API Controller Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Index method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
index view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
datatable view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
datatable-script.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Add Nav To Marketing Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Carousel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Pages Index View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Update slider.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
image_weight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Modify MarketingImageController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
CreateImageRequest and EditImageRequest . . . . . . . . . . . . . . . . . . . . . . . . . 463
Marketing Image Create and edit Views . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
MarketingImage Show View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
marketingImageData API Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Datatable View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
datatable-script.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
PagesController Index Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
CONTENTS
grid.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
nav.blade.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Chapter 11: Making a Custom Artisan Command . . . . . . . . . . . . . . . . . . . . . . . 470
Make Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Handle Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
makeTraitDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。