Open appkr opened 7 years ago
page 223
-코드 23-14 app/Events/ArticleCreated.php +코드 23-14 app/Events/UserCreated.php
-class UserCreated extends Event +class UserCreated
page 72 쿠키를 이용한 세션 유지 메커니즘에서 웹브라우저 쪽 마지막 쿠키 저장소에 기록에서 expires=zzz -> expires=aaa 일것 같습니다.
page 101 코드 12-3을 참고해서 포럼 글 목록을 포시할 뷰를 만들자. -> 표시할 뷰를 만들자. 일것 같습니다~
page 233 코드 23-29 -class PasswordRemindCreated extends Event +class PasswordRemindCreated
------- extends Event 를 삭제하지 않을경우 아래와 같은 오류 발생합니다 ---------- FatalErrorException in PasswordRemindCreated.php line 13: Class 'App\Events\Event' not found
page 232 코드 23-27 비밀번호 업데이트 하는 부분 누락 ( Git Hub 소스에도 해당하는 부분이 없는 것 같습니다 ) 저는 아래와 같이 추가해서 동작 되게 했습니다.
$email = \DB::table( 'password_resets')->whereToken( $token)->first()->email; \DB::table('users')->whereEmail( $email)->update(['password' => bcrypt( $request->input( 'password'))]);
그리고 토큰 뿐만 아니라 이메일도 일치하는지 확인해야 하는 것 같습니다.
@namo429 @show0910 신고 고맙습니다.
이벤트 클래스에 extends Event
가 붙어 있는 것은 라라벨 5.2때 원고를 썼다가, 5.3이 나오고 원고를 고치하는 과정에 꼼꼼이 살피지 못해서 라라벨 5.2의 찌꺼기가 남아 있는 것입니다.
@namo429 님이 지적하신 비밀번호 변경 로직 누락 부분! 완전 고맙습니다.
page 250 코드 25-1 -parent::boot($router); +parent::boot(); ------------- 에러 발생 ------------ ErrorException in RouteServiceProvider.php line 28: Undefined variable: router
page 64 표 8-1
-ArticlesController@delete +ArticlesController@destroy
-> 이부분이 php artisan route:list 로 출력하면 ArticlesController@destroy로 나옵니다. 그런데 소스 전반적으로 destroy로 되어있습니다. 혹시 delete 로 작성해도 되는 것인지는 모르겠습니다만..
P512에 코드 C-13 제목에 Writing.php -> Post.php 가 되야할거 같아요.
@namo429 라우팅 정의 파일에서 Route::resource('articles', 'ArticlesController')
로 정의하고, $php artisan make:controller ArticlesController --resource
로 컨트롤러를 만들면, 책에 쓴대로 DELETE /articles/{article}
URL은 자동으로 ArticlesController::destroy()
로 연결됩니다.
직접 하나씩 하나씩 정의한다면 컨트롤러 메서드 이름은 delete로 쓰셔도 됩니다. 예를 들어
<?php // routes/web.php
Route::delete('articles/{article}', 'ArticlesController@delete');
<?php // app/Http/Controllers/ArticlesController.php
class ArticlesController ... {
public function delete($article)
{
// HTTP 요청 처리 로직
}
}
처럼이요.
page 285 코드 27-13 -{{ $file->filename }} ({{ $file->bytes }}) +{{ $attachment->filename }} ({{ $attachment->bytes }})
page 287 -코드 27-17 routes/web.php +코드 27-17 resources/views/articles/partial/form.blade.php
page 305 코드 28-13 -public function boot( Router $router) +public function boot() -parent::boot($router); +parent::boot();
page 327 코드 29-12 -class CommentsEvent extends Event +class CommentsEvent
page 343 dd('캐싱되면 출력 안됨'); 등의 문장을 넣어 놓고.. -> dd 로 했을경우 다음 return 문에 도달하지 못해서요, echo나 var_dump 등의 문장을 넣어 놓고.. 로 바꾸어야 할 것 같습니다.
page 347 코드 29-40 -namespace App\Http\Cacheable.php; +namespace App\Http\Controllers;
오탈자가 왜 이리 많죠 ㅜㅜ @namo429 님 꼼꼼이 봐주셔 정말 고맙습니다. 평일 낮에 삼성역 근처를 지나실 기회가 있으면 페북 메시지로 꼭 한번 연락 주세요. 신고해 주신 3건은 내일 아침에 볼게요~
page 137 중간 -string g iven +string given
page 228 -코드 23-21를 참고하여 +코드 23-12를 참고하여
@namo429 page 343의 캐싱에서 dd()
를 찍는 부분은 책 내용이 맞습니다.
class Controller extends BaseController
{
protected function cache($key, $minutes, $query, $method, ...$args)
{
// ...
return \Cache::remember($key, $minutes, function () use ($query, $method, $args) {
// 캐시 저장소에 만료되지 않은 $key가 있다면 이 콜백은 실행되지 않습니다.
dd('캐싱되면 출력 안됨');
return $query->{$method}($args);
});
}
}
page 52 코드설명줄
public function down()
{
Schema::drop('posts');
}
부분을
public function down()
{
Schema::dropIfExists('posts');
}
로 고쳐주셔야될것같습니다 ^^; artisan make로 실행해도 dropIfExists로 생성되네요.
page 88번째 10.2.2 관계확인 tinker 커맨드라인 에제
>>> App\User::find(2)->articles()->create([
로 된 부분을
>>> App\User::find(1)->articles()->create([
로 수정해야될것같아요. 이전 예제에서 User모델로 생성한 데이터가 1건밖에 없는데 2번째 데이터를 찾으려고 하니 오류가 뜨네요.
또하나 발견했습니다. page 122 예제코드 14-4의 코드경로
app/Http/Listeners/ArticlesEventListener.php
를
app/Listeners/ArticlesEventListener.php
로 변경
page 123 예제코드 14-6의 코드경로
app/Http/Events/ArticleCreated.php
를
app/Events/ArticleCreated.php
로 변경해야될듯하네요
263p public function edit()는 있는데, update()는 권한 체크가 없어서 왜 여기서 권한 체크를 안할까?라고 생각해서 Repository의 해당 소스(app/Http/Controllers/Articelscontroller.php)를 찾아보니 update()에는 적용이 되어 있습니다.
@corean 그냥 지면을 아끼기 위해 생략한 것이라 보시면 되겠습니다. 고맙습니다.
262p 코드 25-18 의 Gate::define 부분인데, 아래 설명부분에는 $gate->define('update', ~~~) 으로 되어 있습니다.
266page 262p 와 마찬가지 오타입니다. 코드 25-25 의 Gate::define 부분의 아래 설명에서 $gate->define 으로 되어 있습니다.
352page 코드 30-4 의 파일명이 resources/lang/ko/comments.php 가 아닌 resource/lang/ko/forum.php 입니다.
407page 코드 34-3 에서 public function transform(\App\Article $item) 부분이 public function transform(\App\Article $article) 로 바뀌어야 합니다.
$item 변수명이 잘못되어 있네요.
129p wehreEmail()은 동적 메서드다 -> whereEmail()은 동적 메서드다
오타 신고합니다. 책에는 없지만 (27장의 27.4 마치며 단원의 추가 코드 변경 내용입니다.)
$path = attachments_path($attachment->name);
를 아래와 같이 고쳐야 하네요.
$path = attachments_path($attachment->filename);
@jhylmb 고맙습니다. @everybody 책 본문이 아니라 예제 코드의 오타(버그)입니다.
109page
유효성 검사 오류가 발생하면 컨트롤러는 lluminate\Support|MessageBag 인스턴스를 만들어 유효성 검사 오류가 발생하면 컨트롤러는 Illuminate\Support|MessageBag 인스턴스를 만들어
의도하고 내신 오류인지는 모르겠지만 237페이지 하단 도표에서 깃허브가 아니라 갓허브라고 되어있습니다 깃허브는 정말 갓하네요... ㄷㄷ
510 page
코드 C-10 에
new Post('~~')->save() ==> (new Post('~~~'))->save()
으로 해야 되네요
125page 중간쯤 이 클래스의 boot() 메소드 본문에 $events->listen() 을 여러 번 --> 이 클래스의 boot() 메소드 본문에 \Event::list() 을 여러 번
page 363
$timezone=(auth->user->timezone) ?: config('app.timezone'); $timezone=(auth()->user()->timezone) ?: config('app.timezone');
php7, laravel 5.6 에서는 작동이 안되는군요
@YongukMoon 제보 고맙습니다. Laravel 5.6은 PHP7.1 이상이 필요합니다.
~/l5code(laravel56) $ tinker
Psy Shell v0.8.17 (PHP 7.1.22 — cli) by Justin Hileman
>>> $timezone = 'Asia/Seoul';
=> "Asia/Seoul"
>>> $datetime = Carbon\Carbon::now();
=> Carbon\Carbon @1538536041 {#875
date: 2018-10-03 03:07:21.062260 UTC (+00:00),
}
>>> $datetime->timezone($timezone);
=> Carbon\Carbon @1538536041 {#875
date: 2018-10-03 12:07:21.062260 Asia/Seoul (+09:00),
}
>>> exit
Exit: Goodbye.
~/l5code(laravel56) $ php -v
PHP 7.1.22 (cli) (built: Sep 13 2018 21:14:15) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.22, Copyright (c) 1999-2018, by Zend Technologies
~/l5code(laravel56) $ artisan --version
Laravel Framework 5.6.12
page 421 class ArticlesController extends Controller implements Cacheable class ArticlesController extends ParentController
page 212
flash()->danger('오류가 발생했습니다.'); flash('오류가 발생했습니다.', 'danger');
클래스 파일 확인해보니 flash()->error('오류가 발생했습니다.'); 로 고쳐서 확인했습니다.
page 232 코드23-26 resources/views/passwords/reset.blade.php 이부분 오탈자 입니다. 아래 처럼 수정되어야 합니다.
resources/views/emails/passwords/reset.blade.php
error api가 바꼈나봅니다.
책을 읽다가 오탈자를 발견하시면 신고해 주세요. 이 글에 댓글로 써 주세요.
을 써 주시면 됩니다.
혹시라도 이 책을 다시 찍게 된다면, 후배 독자들이 더 완성도 있는 책을 읽을 수 있을 겁니다. 이 저장소는 깃허브가 서비스를 접을 때까지, 삭제하지 않을 것이므로 여러분들의 기여가 영구적으로 보관됩니다.
고맙습니다.
이상의 내용은 곧 나올 2쇄에 모두 반영되었습니다.
이상의 내용은 3쇄에 모두 반영되었습니다.