debug
๋ฐ์ํ ์ ์๋ ๋ฒ๊ทธ ์ข
๋ฅ
๋ฌธ๋ฒ ์ค๋ฅ : php ์ธํฐํ๋ฆฌํฐ๊ฐ ๋ฌธ๋ฒ ์ค๋ฅ๋ฅผ ๋ธ๋ค.
๋ก์ง ์ค๋ฅ : ๋ฌดํ ๋ฃจํ๋ ์๋ชป๋ ์กฐ๊ฑด๋ถ๊ธฐ๋ฑ์ ์ค๋ฅ๋ก ์๋ชป๋ ๋ฐ์ดํฐ ์ถ๋ ฅ๋ฑ์ ๋ฌธ์ ๋ฐ์
๋ฆฌ์์ค ์ค๋ฅ : null ํฌ์ธํฐ๋ ์ด๊ธฐํํ์ง ์์ ๋ณ์ใ ก ๋ ์ดํฐํ์ ๋ฑ์ ์ค๋ฅ๋ก
Trying to get property of non-object
๋๋Call to undefined method
๋ฉ์์ง๋ก ํ์๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฉ์๋์ ๋งค๊ฐ๋ณ์ ์์ํ์ ํํธ
๋ฅผ ์ฌ์ฉํ๋ ํธ์ด ์ข์ ์ต๊ด์ด๊ณ php7๋ถํฐ๋ ํ์ ์ ์ง์ ์ด ๊ฐ๋ฅํ๋ค.๊ณ์ฐ ๋ฒ๊ทธ : 0์ผ๋ก ๊ฐ์ ๋๋๊ฑฐ๋ ๋ฐ์ฌ๋ฆผ ์๋ฆฟ์๋ฅผ ์๋ชป ์ ๋ ฅํด ์ด์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ๋ฐ์ => ๋๊ณผ ๊ด๋ จ๋ ์๋น์ค์์๋ ์น๋ช ์ ์ผ ์ ์๋ค.
๋์์ฑ ์ค๋ฅ : php๋ ๋จ์ผ ์ค๋ ๋ ์ธ์ด๋ก ๋ค์ค ์ค๋ ๋ ๋ฌธ์ ๋ ๋ง์ด ๋ฐ์ํ์ง ์์ง๋ง ํธ๋ํฝ์ด ๋ง์ db์์๋ ๋ฐ์ํ ์ ์๊ณ ์ด๋ ํธ๋์ญ์ ๊ธฐ๋ฅ์ ์ด์ฉํ ์์๋ค.
์๋ชป๋ ์ฌ์ฉ : api๋ฅผ ์๋ชป ์ฌ์ฉํ ๋ ๋ฐ์ ํ ์ ์๋ ์ค๋ฅ
ํ์ํฌ ์ค๋ฅ : ์ฌ๋ฌ๋ช ์ด ๊ฐ์ ์ฝ๋๋ฅผ ์ง๊ณ ๊ณ ์น๋ ๊ณผ์ ์์ ์ถฉ๋, side effect๋ฑ์ด ๋ฐ์ ํ ์ ์๋ค.
์ฑ๋ฅ ์ค๋ฅ
๋ณด์ ์ค๋ฅ : ์๋น์ค์ ๋ฐ์ดํฐ๊ฐ ์ค์ผ, ์ ์ค, ํ์ทจ๋๋ ๋ฌธ์
์ค๊ณ ์ค๋ฅ : ์๋ชป๋ ์ค๊ณ ๋ช ์ธ์์ ์ํด์ ์๋ฑํ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ฌ ์๋ ์๋ค.
๋๋ฒ๊น
๋ฐฉ๋ฒ
1. dd() ํจ์
//controller
public function show($id){
$article = \App\Article::findeOrFail($id);
dd($article);
return $article->toArray();
}
dd()๋ฉ์๋๋ ๋๋ฒ๊ฑฐ๋ก ์ค๋จ์ ์ ์ฐ๋ ๊ฒ๊ณผ ๋๊ฐ์ ์ผ์ ์ํํ์ฌ ์ธ์๋ก ๋ฐ์ ๊ฐ์ ๋คํํ๊ณ ์คํ์ ๋ฉ์ถ๋ค. ์ด๋ ๋ทฐ๋ฅผ ๋๋ฒ๊น
ํ ๋๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ๋ผ๋ผ๋ฒจ์ ๋ธ๋ ์ด๋ ์์ง์ผ๋ก ๋ทฐ๋ฅผ ์ปดํ์ผํ ํ storage/framework/view ๋๋ ํ ๋ฆฌ ์๋์ ์บ์ํด ๋๋๋ฐ, ์ด ์บ์๋ ํ์ผ์ ์ด์ด ๋ทฐ ๋๋ฒ๊น
์ ํ ์๋ ์๋ค ํ์ง๋ง ์์ง์ด ์ปดํ์ผํ phpํ์ผ์ด๋ผ ๋ณด๊ธฐ ๋ถํธํ ์ ์์๋ฐ ์ด๋ render()
๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
controller์์ dd(view('article.index',compact('articles'))->render());
์ ๊ฐ์ด ์์ฑํ๋ฉด render()๋ฉ์๋๊ฐ ๋ทฐ ์ธ์คํด์ค์ ์ ์ฅ๋ html์ฝ๋๋ฅผ ์ถ๋ ฅํด์ค๋ค.
2. ์ฟผ๋ฆฌ ๋๋ฒ๊น
php artisan tinker
>>> $queryLoyalUsers = App\User::wher(
'last_login', '>', Carbon\Carbon::now()->subMonth()
)->toSql();
DB::listen(function ($query){...})
๊ตฌ๋ฌธ์ ์ด์ฉํ๊ฑฐ๋ ์ปฌ๋ ์
์ ์ป๋ ์ฟผ๋ฆฌ์ผ ๋๋ ์์ ๊ฐ์ด toSql()
๋ฉ์๋๋ฅผ ์ด์ฉํ ์ ์๋ค. ๋ชจ๋ธ ์ฟผ๋ฆฌ์์ get()๋ฉ์๋๋ฅผ toSql()๋ก ๋ฐ๊พธ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
Last updated