The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Version |
Location |
Description |
Submitted By |
Date submitted |
Date corrected |
Other Digital Version |
x
Online, can't tell page. Ch 4, Components n Slots 1st para, last sentence before Example 4-14 |
"example of a model, or popover,"
I believe you meant "modal" (as in the Example).
Note: You are a god.
Note from the Author or Editor: Fixed (already updated in the source).
|
Nathan T Granger |
Apr 11, 2020 |
|
Other Digital Version |
x
Chapter 5, ENDING/RETURNING METHODS, dd() and dump() |
Double use of 'the underlying' in sentence below.
Dump the underlying the underlying SQL query and the bindings, and, if using dd(), ends the script.
Should read.
Dump the underlying SQL query and the bindings, and, if using dd(), ends the script.
Note from the Author or Editor: Changes needed: Delete duplicate "the underlying".
Already changed in the source.
|
Stuart summers |
Sep 17, 2020 |
|
Printed, PDF, ePub, Mobi, , Other Digital Version |
Page 16
Under app folder description |
The paragraph is:
Where the bulk of your actual application will go. .Models, controllers, commands, and your PHP domain code will all go in here.
Issue:
Notice before the second sentence there is an additional period.
Note from the Author or Editor: Delete the extra period at the end of the sentence.
From this:
Where the bulk of your actual application will go. .Models, controllers, commands, and your PHP domain code will all go in here.
to this:
Where the bulk of your actual application will go. Models, controllers, commands, and your PHP domain code will all go in here.
I've fixed this in the code.
|
Vince Mitchell |
May 02, 2019 |
Feb 21, 2020 |
Other Digital Version |
17
Under .editorconfig file description |
Typo: standars
This line:
Gives your IDE/text editor instructions about Laravel's coding standars
Should be:
Gives your IDE/text editor instructions about Laravel's coding standards
Note:
I purchased the Kindle Edition this morning (3AM PST). It appears that a lot of issues were corrected some time today. Unfortunately, Amazon hasn't provided access to the corrected version.
Note from the Author or Editor: Fixed, changing "standars" to "standards" under the description of the .editorconfig file in chapter 2.
|
Michael Novello |
Feb 21, 2020 |
|
Printed, PDF |
Page 35
Rate limiting |
This line:
If you need to limit users to only accessing any give route(s) a certain number of times
Should be:
If you need to limit users to only accessing any given route(s) a certain number of times
|
Zakaria Harara |
Feb 19, 2020 |
Feb 21, 2020 |
Printed |
Page 48
Paragraph after example 3-28 |
The end of the paragraph after Example 3-28 seems incorrect.
It currently ends with:
"the index() method on the tasks resource controller will be named tasks.index()."
I presume it should be:
"the index() method on the tasks resource controller will be named tasks.index."
Which just removes the parentheses '()' at the end of the sentence.
Note from the Author or Editor: Replace tasks.index() with tasks.index:
the +index()+ method on the +tasks+ resource controller will be named +tasks.index()+.
should be:
the +index()+ method on the +tasks+ resource controller will be named +tasks.index+.
I've already fixed in the code.
|
Vince Mitchell |
May 06, 2019 |
Feb 21, 2020 |
Printed |
Page 57
"Other Redirect Methods" |
Reported from Tobias Etzold, refresh() and away() are improperly formatted in the "Other Redirect Methods" list and were incorrectly lumped into the home() paragraph.
Fixed in the code.
|
Matt Stauffer |
May 29, 2019 |
Feb 21, 2020 |
Printed, PDF |
Page 57
Other Redirect Methods�, under guest() |
Typo:
*authentification*� should be authentication
Note from the Author or Editor: Fixed (already updated in the code).
|
Zakaria Harara |
Feb 23, 2020 |
|
PDF, ePub |
Page 66
View composers for multiple views |
in the example given you are using closure as the following:
function () { $view->with('posts', Post::recent()); }
you you have not defined $view as the function parameter in the both examples provided.
Note from the Author or Editor: Two closures in Chapter 4 were missing the +$view+ parameter in their function definitions.
I've fixed in the code.
|
Pezhvak IMV |
May 18, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub |
Page 78
after Example 4-24. A view composer |
in the given example variable 'recentPosts' is used for passing Post::recent() into the view, but in the following paragraph there is a typo which is referring 'recentPosts' as 'posts':
As you can see, when this composer is called, it runs the compose() method, in which we bind the posts variable to the result of running the Post model’s recent() method.
Note from the Author or Editor: +posts+ variable in the paragraph following 4-24 should be +recentPosts+.
I've fixed in the code.
|
Pezhvak IMV |
May 18, 2019 |
Feb 21, 2020 |
Printed |
Page 84
Example 4-36 |
This line:
$response = $this->get("events/{ $event->id }");
Should be this:
$response = $this->get("events/{ $event1->id }");
(I've fixed this in the source).
|
Matt Stauffer |
Jul 14, 2019 |
Feb 21, 2020 |
, Printed, PDF, ePub, Mobi, , Other Digital Version |
Page 89
Last paragraph |
The paragraph heading is not formatted. Displays as
[role="less_space pagebreak-before"]' === Migrations
Note from the Author or Editor: Fix the role note to make this a correct subheading.
|
Oladipupo Majekodunmi |
Apr 27, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub |
Page 102
Example 5-10. Using model factories |
in the second factory (for User::class), $post is passed to the closure to be used, but it's not defined, which clearly should be from the return value of the previous factory for Post:class.
i think it should be like this:
$post = factory(Post::class)->create([ 'title' => 'My greatest post ever', ]);
// Pro-level factory; but don't get overwhelmed! factory(User::class, 20)->create()->each(function ($u) use ($post) {
$post->comments()->save(factory(Comment::class)->make([
'user_id' => $u->id,
])); });
Note from the Author or Editor: Example 5-10 needed "$post = " assigned to the output of the first factory creation, resulting in this:
$post = factory(Post::class)->create([
'title' => 'My greatest post ever',
]);
I've changed it in the code.
|
Pezhvak IMV |
May 18, 2019 |
Feb 21, 2020 |
, Printed, PDF, ePub, Mobi, , Other Digital Version |
Page 104
Example 5-14. Specifying a factory state with a closure |
Following the example for creating an instance of a state as stated below
$vip = factory(Contact::class, 'vip')->create();
$vips = factory(Contact::class, 'vip', 3)->create();
throws an error (Unable to locate factory with name...) for me when working in version 5.8.14.
Changing it to the following, however, works.
$vip = factory(Contact::class)->state('vip')->create();
$vips = factory(Contact::class, 3)->state('vip')->create();
Note from the Author or Editor: Fix as described in the issue:
$vip = factory(Contact::class, 'vip')->create();
$vips = factory(Contact::class, 'vip', 3)->create();
should be:
$vip = factory(Contact::class)->state('vip')->create();
$vips = factory(Contact::class, 3)->state('vip')->create();
I've already fixed.
|
Oladipupo Majekodunmi |
Apr 27, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub |
Page 106
Raw SQL -> Raw selects |
after this example:
$users = DB::select('select * from users');
you wrote "This will return a collection of stdClass objects." which is not accurate.
raw select on DB facade returns an 'array' of stdClass, collection will be returned only for fluent query builder (DB::table('users')->select()->get() / DB::table('users')->get())
Note from the Author or Editor: If a call is made directly on the DB Facade (most often +select()+) it returns an array; if it's a chainable method, most often ending in +get()+, it returns a collection.
Fixed in the code.
|
Pezhvak IMV |
May 19, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub |
Page 117
// Take database actions |
in the following line ')' is missing:
if ($badThingsHappened {
DB::rollBack();
}
Note from the Author or Editor: $badThingsHappened needs a closing paren, resulting in:
if ($badThingsHappened) {
I've fixed it in the code.
|
Pezhvak IMV |
May 19, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub, Mobi, , Other Digital Version |
Page 118
Example 5-18 |
In the `public function save(Request $request)`, there is a typo in one of the 'contact' words, it says $conatct->email instead of $contact.
Note from the Author or Editor: Replace this:
$conatct->email
with this:
$contact->email
I've fixed this already.
|
Zuzana Kunckova |
May 06, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub, Mobi, , Other Digital Version |
Page 145
Many to Many |
The text reads - "So, since we’re linking users and contacts, our pivot table should be named contacts_users..."
When testing the code, this gives an error "Table 'dbname.contact_user' doesn't exist"
It appears to be looking for contact_user and not the suggested contacts_users.
Note from the Author or Editor: Rename "contacts_users" to "contact_user" in chapter 5 just below "Defining a many-to-many relationship's inverse".
Fixed in the source code already.
|
Oladipupo Majekodunmi |
May 11, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub, Mobi, , Other Digital Version |
Page 232
Example 9-7; code snippet |
The code contains a minor misplacement of a closing parenthesis in the fourth line:
]), request()->filled('remember')) {
should be, I think,
], request()->filled('remember'))) {
Note from the Author or Editor: Move the parenthesis to just before the curly brace, as shown.
From this:
]), request()->filled('remember')) {
to this:
], request()->filled('remember'))) {
I've already applied this change.
|
David Carter |
Apr 27, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub |
Page 252
Different Names for Testing Methods Prior to Laravel 5.4 |
you have written this two times in the same paragraph:
Laravel prior to 5.4, assertDatabaseHas() should be replaced by seeInDatabase(),....
and then again:
assertDatabaseMissing() should likewise be replaced by dontSeeInDatabase(), assertDatabaseHas() should be replaced by seeInDatabase().
Note from the Author or Editor: assertDatabaseHas() should be replaced by seeInDatabase was in the list twice just below [[EX926]] Testing authentication routes.
Fixed in the code.
|
Pezhvak IMV |
May 26, 2019 |
Feb 21, 2020 |
Printed |
Page 319
Second code block, starting with '$slackMock |
The code block misses part of the arrow in the last method call. ")-should" should have been ")->should"
Note from the Author or Editor: There is a missing +>+ from this block, as described.
Fixed in the code.
|
Jakob Buis |
May 25, 2019 |
Feb 21, 2020 |
Printed, PDF, ePub, Mobi, , Other Digital Version |
Page 339
Artisan command after first paragraph. |
The command
php artisan make:controller Api\DogsController --api
creates ApiDogsController in the Controllers folder.
The backslash should be replaced with a forward slash to create DogsController in the Controllers/Api directory/namespace.
i.e. php artisan make:controller Api/DogsController --api
Note from the Author or Editor: Replace the backslash with a forward slash in the original command, from this:
php artisan make:controller Api\DogsController --api
to this:
php artisan make:controller Api/DogsController --api
I've applied this change.
|
Richard Bailey |
May 06, 2019 |
Feb 21, 2020 |
Other Digital Version |
1338
Example 3-37, line 4 |
Code example reads:
'X-XSRF-TOKEN': ...
Possible correction:
'X-CSRF-TOKEN': ...
Note:
Page numbers are whacky in the Kindle app.
Also, not sure this is a real typo. I looked around a little, and the official documentation uses the CSRF-TOKEN version. I read somewhere that a XSRF-TOKEN cookie is encrypted and provided by Laravel (and then sent back to Laravel in the same encrypted format). I'm uncertain whether the csrf_token() helper function provides an encrypted version for the VerifyCsrfMiddleware middleware, or if it matters either way.
Note from the Author or Editor: Changing to CSRF. (Fixed in the code)
|
Michael Novello |
Feb 24, 2020 |
|