pagingLoading
๊ฐ๋ฐ์ ์ํํ๋ค ๋ณด๋ฉด ์ฐ๊ด๊ด๊ณ์๋ ํ
์ด๋ธ์ ์กฐํํ ๋ ๋ทฐ์์ ๋ฌธ์์ด ๋ณด๊ฐ์ ํ ๋๋ง๋ค ๊ด๊ณ๋ฅผ ํตํด ์ฟผ๋ฆฌ๋ฅผ ์กฐํํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ถ๋ถ์์ N+1
๋ฌธ์ ๋ฅผ ๋ง๋ฅ๋จ๋ฆด ์ ์์ ๊ฒ์ด๋ค.
์ด๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ผ๋ก db์์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ์กฐํ ํด์ค๋ ์ฆ์๋ก๋ฉ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
์ฆ์ ๋ก๋ฉ (Eager Loading)
$articles = \App\Article::with('user')->get();
๋ชจ๋ธ ์ฟผ๋ฆฌ ์์๋ถ๋ถ์ with()๋ฉ์๋๋ฅผ ์ฒด์ธํด์ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ ์ด๋ ์ธ์๋ก ๋ฐ์ ๊ด๊ณ๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ๊ฒ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฆ์ ๋ก๋ฉ์ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ ์ด ์๋๋ฐ ๋ค์๊ณผ ๊ฐ๋ค.
with()๋ฉ์๋๋ ํญ์ ์๋กํํธ ๋ชจ๋ธ ๋ฐ๋ก ๋ค์ ์์นํด์ผํ๋ค.
with()๋ฉ์๋ ์ธ์๋ ํ ์ด๋ธ ์ด๋ฆ์ด ์๋๋ผ ๋ชจ๋ธ์์ ๊ด๊ณ๋ฅผ ํํํ๋
๋ฉ์๋
์ ์ด๋ฆ์ด๋ค.
์ง์ฐ ๋ก๋ฉ (Lazy Loading)
$articles = \App\Article::get();
$articles->load('user');
๊ธฐ๋ณธ์ ๋ต์ด ์ง์ฐ๋ก๋ฉ์ผ๋ก get()๋ฉ์๋๋ฅผ ์ด์ฉํด ์กฐํํ๋ฉด ์ฐ๊ด๊ด๊ณ์ ์๋ ๋ชจ๋ธ์ ์ ๋ณด๋ ์กฐํ๋์ง ์๋๋ฐ ์ํ ๋ user์ ์ ๋ณด๋ฅผ ๋ก๋ฉํ๊ณ ์ถ๋ค๋ฉด load()
๋ฉ์๋๋ฅผ ์ด์ฉํด์ ๋ก๋ฉ์ ์ํํ๋ฉด ๋๋ค.
ํ์ด์ง
get()์ด ์๋๋ผ paginate()
๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ํ์ด์ง์ ์ฝ๊ฒ ์ด์ฉํ ์ ์๋ค.
$articles = \App\Article::latest()->paginate(3);
latest()๋ ๋ ์ง ์ญ์์ผ๋ก ์ ๋ ฌํ๋ ๋ฉ์๋๋ก 0orderBy('created_at','desc')
์ ๊ฐ๋ค.
Last updated