Project/Laravel

1.라라벨 설치 및 라우팅

smartlittlepuppy 2022. 7. 18. 15:41
반응형

설치 및 실행

1. 컴포저를 다운로드 한다.  Composer-setup.exe를 실행한다.

 https://getcomposer.org

2.컴포저 설치가 잘 됐는지 확인한다. 

PS C:\xampp\htdocs\laravelShopping> composer

3. 라라벨을 설치한다. 

PS C:\xampp\htdocs\laravelShopping> composer create-project --prefer-dist laravel/laravel laravel8

4. 라라벨을 실행한다. 

PS C:\xampp\htdocs\laravelShopping\laravel8> php artisan serve

 

 

라우팅방법

//알파벳만 넣도록한다. /api/users/June 
Route::get('/users/{name?}', function($name=null){
    return 'Hi Users'. $name; 
})->where('name', '[a-zA-Z]+');

//숫자만 /api/products/1
Route::get('/products/{id?}', function($id=null){
    return 'product id is'. $id; 
})->where('id', '[0-9]+');

1. App\Providers\RouteServiceProvider.php

아래 두줄을 추가한다. 그러면 위에  where문을 적지 않아도 자동으로 적용이 된다. 

 

 public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        });
        Route::pattern('name', '[a-zA-Z]+');
        Route::pattern('id', '[0-9]+');
    }

2. 아래처러하면, 동일한 URL로 Get 또는 Post를 불러 올 수 있다. 

/api/posts

Route::match(['get', 'post'], '/students', function(Request $req){
    return 'Requested method is ' . $req->method(); 
});

아래와 같이 하면, Get, Post, Put, Delete 

Route::any('/posts', function(Request $req){
    return 'Requested method is ' . $req->method(); 
});

컨트롤러

1. 컨트롤러 만들기

$ php artisan make:controller HomeController
Controller created successfully.

2. 라우팅에서 파라메타를 컨트롤러로 넘기고 싶을때, 아래와 같이 한다. 

이러한 파라메타를 있어도 되고 없어도 되는 옵션상태로 만들고 싶다면 {name?} 물음표를 붙여줘야한다. 

Route::get('/home/{name}', [HomeController::class, 'index'])->name('home.index');

그러면, 컨트롤러에서, 아래와 같이 받아서 출력한다. 

class HomeController extends Controller
{
    //
    public function index($name){
        return 'Hi from HomeController' .$name;
    }
}

뷰페이지

resources > views

1. UserController 만든다. 

 php artisan make:controller UserController
Controller created successfully.

2. 컨트롤러에서 뷰로 값을 전달하려면, compact를 사용한다. 

class UserController extends Controller
{
    //
    public function index(){
        $name='June';
        return view('user', compact(('name')));
    }
}

아래와같이, 뷰페이지에서 받을 수 있다. 

    <h1>User View</h1>
    <h1>User View {{ $name }}</h1>

3. 컨트롤러에서 뷰로 배열형태로 보낼때, 

   public function index(){
        $name='June';
        $users = array(
            "name"=>"admin",
            "email"=>"admin@email.com"
        );
        return view('user', compact('name', 'users'));
    }

아래와같이, 뷰페이지에서 받을 수 있다. 

    <h1>User View</h1>
    <h1>User View {{ $name }}</h1>
    <p>{{ $users['name'] }}</p>
    <p>{{ $users['email'] }}</p>

 

반응형

'Project > Laravel' 카테고리의 다른 글

3.HTTP CLIENT를 사용해서 CRUD 만들기  (0) 2022.07.19
2.라라벨 컴포넌트  (0) 2022.07.18
글 읽어오기  (0) 2022.07.15
레이아웃 만들기  (0) 2022.07.14
테이블 만들기  (0) 2022.07.14