๋ชฉ์ฐจ
laravel MVC ํจํด์ ๋ํด ๊ธฐ๋กํ๋ค.
์ ์ฒด์ ์ธ ํ๋ก์ธ์ค๋ ์๋์ ๊ฐ๋ค.

java spring์ ํด๋ดค๋ค๋ฉด ์์ํ๊ฒ ์ดํดํ ์ ์์ ๋ฏ ์ถ๋ค.
๋ก์ปฌ ๊ฐ๋ฐํ๊ฒฝ : ๋ผ๋ผ๋ฒจ ver 8.83.2

DB์ ์ ์ค์ ๐
๋จผ์ ์ ์ํ DB๋ฅผ ์ค์ ํ๋ค, ์ ์ญ์ ์ธ ์ค์ ์ .env์์ ํ๋ค.


๊ทธ๋ฆฌ๊ณ config์ database.php์ db์ ์์ ๋ณด๋ฅผ ์์ ํ๋ค.(.env์ ๋ง์ถฐ์)


env์ ๋ง์ถฐ์ ์ ์ด์ผ ๋๋ ์ด์ ๊ฐ 48 ~ 54 line์ ๋ณด๋ฉด => env('์ ๋ณด') ์ด๋ฐ์์ผ๋ก ๋์ด ์์ด์
๋ฑ๋ด๋ database.php์์ .envํ์ผ์ ๋ด์ฉ์ ๋ถ๋ฌ์จ๋ค๋ ๊ฑธ ์ถ์ธกํ ์ ์๋ค.
์๋ง ํ๋ฆฌ๊ฒ ์ ์ผ๋ฉด ์๋ฌ๊ฐ ๋์ง ์์๊น?๐ค
URL ๋งคํ๐
์ผ๋จ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ routes/web.php๊ฐ ๋ฐ์์ ์์ฒญ์ ๋ฐ๋ฅธ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ฒฐ์ ํ๊ณ
์ปจํธ๋กค๋ฌ์์๋ ์์ฒญ ๋ฐ์ ๋ด์ฉ์ ์ํ(๋ง์ผ DB ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ๋ฉด Model์ ํตํด ์์ ์ํ) ํ ์ ๋ฌํ ๋ฐ์ดํฐ์ ๋ทฐ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํ๋ค.
์ถ์ ์ปจ๋ ํ์ผ๋ช ๋ ๊ทธ๋ ๊ณ spring MVC์ web.xml์ ์ญํ ์ ํ๋๊ฒ ์๋๊น ์ถ๋ค.
ํ ์คํธ๋ฅผ ์ํด ๊ธฐ์กด web.phpํ์ผ ๋ฐฑ์ ํ routes/web.php์์ ์๋์ฒ๋ผ ์ฝ๋๋ฅผ ์์ ํ๋ค.
๊ฒฝ๋ก : C:\xampp\htdocs\ํ๋ก์ ํธ๋ช \routes
<?php
use Illuminate\Support\Facades\Route;
use app\Http\Controllers\MainController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/main','App\Http\Controllers\MainController@index')->name('index');
์ ์ฝ๋๊ฐ ์๋ฏธํ๋ ๊ฑด ๋ธ๋ผ์ฐ์ ์์ "127.0.0.1:8000/main"ํธ์ถ ์ MainController์ index function์์ ์ฒ๋ฆฌ๋ฅผ ํ ๊ฒ์ด๊ณ return๋ฐ๋ view์ด๋ฆ์ index.blade.php๋ก ํ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
์ด๊ฒ ๋์ค์๋ ์๋์ฒ๋ผ ๋ง์์ง ๊ฒ์ด๋ค.

Controller๐คฉ
์ด์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ MainController๋ฅผ artisan ๋ช ๋ น์ด๋ฅผ ํตํด ๋ง๋ค์ด ๋ณด๊ฒ ๋ค.

์ ๋ช ๋ น์ด๋ก MainController๋ผ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ง๋ค๋ฉด App > http > Controllers์ ์์ฑ๋๋ค.

์๋๋ ๊ฐ๋จํ ์ปจํธ๋กค๋ฌ ์ฝ๋ ์์๋ค.
์น ์ต์ด ํธ์ถ ์ board(๋ฏธ๋ฆฌ ์์ฑ) ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์์ $memos์ ๋ด์ ํ index.blade.php์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์์ ์ด๋ค.
โป namespace : java์ package
use : java์ import์ ๋น์ทํ๋ค๊ณ ๋ณด๋ฉด ๋จ
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
//Memo ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
use App\Models\Memo;
class MainController extends Controller
{
// ์์ฒญ์ฒ๋ฆฌ ํจ์
public function index(){
// board ํ
์ด๋ธ์์ ๋ฉ๋ชจ ์์ฑ ๋ ์ง ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด ๊ฐ์ ธ์จ๋ค.
// orderBy()๋ Illuminate ORM์์ ์ ๊ณตํ๋ ํจ์๋ค. 1๋ฒ ์งธ ์ธ์๊ฐ์ ์ปฌ๋ผ, 2๋ฒ ์งธ๋ ์ ๋ ฌ๋ฐฉ์(asc, desc)
$memos = Memo::orderBy('regdate', 'desc')->get();
//index view์ ๊ฐ์ ธ์จ ๋ฉ๋ชจ ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํด ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅ, ๊ฐ์ ํ๋ฉด์ ๋๊ธธ ๋ compact() ์ฌ์ฉ
return view('index',compact('memos'));
// return view('index')->with('memos',$memos); ์ด๊ฒ๋ ๋ง๋ ํํ, ๋ง์น spring์ model.addAttribute() ๊ฐ๋ค.
}
}
์์์ DB์ฒ๋ฆฌ๋ App/Models/Memo.php์์ ์ฒ๋ฆฌํ๋ค.
<?php
namespace App;
use App\Models\Memo;
use Illuminate\Database\Eloquent\Model;
class Memo extends Model
{ // ํ
์ด๋ธ๋ช
protected $table ='board';
// ์ปฌ๋ผ๋ช
protected $fillable =['content'];
}
์ ์ฝ๋์์ Eloquent์ ORM์ด๋ผ๊ณ ํ๋ค.(์๋ ์ฐธ์กฐ)
๋ผ๋ผ๋ฒจ 8.x - ์์ํ๊ธฐ
๋ผ๋ผ๋ฒจ ํ๊ธ ๋ฉ๋ด์ผ 8.x - ์์ํ๊ธฐ
laravel.kr
view๐
๊ทธ๋ฆฌ๊ณ ํ๋ฉด์ ์ ๋ฌํ view(index.blade.php)๋ฅผ ๋ง๋ค๊ณ ์๋์ฒ๋ผ ์์ ํ๋ค.
<!-- master.blade.php ์๋ค๋ ๊ฐ์ ํ -->
@extends('master')
<h2>์ถ๋ ฅ ํ
์คํธ</h2>
@foreach($memos as $memo)
<table border="solid 1 px;">
<tr>
<td>
<span>{{$memo->bno}}</span> <br>
</td>
<td>
<span>{{$memo->title}}</span> <br>
</td>
<td>
<span>{{$memo->content}}</span> <br>
</td>
<td>
<span>{{$memo->writer}}</span> <br>
</td>
<td>
<span>{{$memo->regdate}}</span> <br>
</td>
</tr>
</table>
@endforeach
๊ฒฝ๋ก : ํ๋ก์ ํธ๋ช /resources > views
๋ผ๋ผ๋ฒจ์์๋ ์ด๋ฅผ view ์คํฌ๋ฆฝํธ๋ผ๊ณ ํ๊ณ .blade.php๋ผ๋ ํ์ฅ์๋ฅผ ์ฌ์ฉํ๋ฉฐ ๋ธ๋ ์ด๋ ํ ํ๋ฆฟ์ด๋ผ ํจ.
*.blade.php๋ artisan make ๋ช ๋ น์ด๋ฅผ ํตํ ์๋ ์์ฑ์ ๋ณ๋๋ก ์ง์ํ์ง ์๊ธฐ์ ์ง์ ์์ฑ ํ์.

์ค์ DB ๋ฐ์ดํฐ ์ถ๋ ฅํ๋ฉด๐
mariaDB board ํ ์ด๋ธ์์ content๊ฐ regdate ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ ์ถ๋ ฅ ์ฑ๊ณต

blade template ๋ฌธ๋ฒ๐
laravel์ ํ๋ฉด ํ ํ๋ฆฟ๋ผ๋ฆฌ ์์์ด ๋๋ค๊ณ ํ๋ค.
index.blade.php(MainController์์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค ํ ํ๋ฆฟ)

footer.blade.php(ํ๋จ ํ ํ๋ฆฟ)

๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ์ต์์ ํ ํ๋ฆฟ master.blade.php(๋ถ๋ชจ ํ ํ๋ฆฟ)

ํ ํ๋ฆฟ ํ์ด์ง ํธ์ถ ๊ฒฐ๊ณผ๐

์๋ ๋ธ๋ก๊ทธ๊ฐ ๋ง์ด ๋์ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.๐
์ฐธ์กฐ : E: overload, 2020.03.03, https://dev-overload.tistory.com/4?category=841810
[PHP] Laravel์์์ MVC ํจํด ๊ตฌํ
์ด๋ฒ ํฌ์คํ ์์๋ Laravel์์ ์ด๋ป๊ฒ MVC ํจํด์ ๊ตฌํํ๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ์๋ง๋ java spring์ ์ ํด ๋ณด์ จ๋ค๋ฉด ๊ตฌ์กฐ ํ์ ์ ์ด๋ ต์ง ์์ ๋ฏ์ถ์ต๋๋ค. ๋ณธ ํฌ์คํ ์ MVC ํจํด ์ด์ฉํ ๋ฉ๋ชจ ์น์ ๋ง
dev-overload.tistory.com
๋ผ๋ผ๋ฒจ 8.x - ๋ทฐ
๋ผ๋ผ๋ฒจ ํ๊ธ ๋ฉ๋ด์ผ 8.x - ๋ทฐ
laravel.kr

๋๊ธ