Laravel 로 간단한 login 동작 구현
- laravel 버전 : Laravel Framework 5.4.23
절차
- laravel project 생성
- Controller 생성
- Model 생성
- route 설정
- Auth 설정
- View 만들기
- DB Migration
laravel project 생성
test1 이라는 laravel project 를 하나 만든다.composer create-project laravel/laravel test1
Composer 로 laravel framework project 를 하나 만들면 project directory 에서 아래같은 directory 구조를 볼 수 있다. 이 중에서 app 부분이 우리가 작성할 code 들이 들어가는 곳이다.
- app\
- Console\
- Exceptions\
- Http\
- Controllers\
- Auth\
- Middleware\
- Providers\
- bootstrap\
- config\
- database\
- public\
- resources\
- routes\
- storage\
- tests\
- vendor\
Controller 생성
php artisan make:controller ListController실행 하면 app/Http/Controllers/ListController.php 가 생성된다. 아래에서 view('welcome') 을 지정하면, 기본적으로 아래 순서로 찾게 된다.(참고 : Illuminate/View/FileViewFinder.php)
- resources/views/welcome.blade.php
- resources/views/welcome.php
- resources/views/welcome.css
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ListController extends Controller { public function show() { $characters = [ 'Test1' => 'Test2', ]; return view('welcome')->withCharacters($characters); } }
Model 생성
php artisan make:model TestModel
app/TestModel.php
routes 설정
routes/web.php 에 route 설정을 해주면 된다.이전버전의 routes.php 가 이리로 옮겨 온 것으로 보면 된다. 실제로는 routes.php 대신에 RouteServiceProvider.php 가 추가되고, RouteServiceProvider에서 web.php 를 호출하고 있다.
<?php
/*
|--------------------------------------------------------------------------
| 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('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
//
Route::get('/', 'ListController@show');
Auth 설정
php artisan make:auth
자동으로 login(auth) 관련 기능을 추가한다.
- login
- logout
- register
- password reset
생성되는 파일들
- app/Http/Controllers/HomeController.php
- resources/views/welcome.blade.php
- resources/views/home.blade.php : dashboard view
- resources/views/auth/login.blade.php
- resources/views/auth/register.blade.php : 회원가입 페이지
- resources/views/auth/passwords/email.blade.php : 패스워드 리셋 confirmation page
- resources/views/auth/passwords/reset.blade.php : 패스워드 리셋 prompt page
- resources/views/auth/emails/password.blade.php : 패스워드 리셋 email
- routes/web.php :
View 만들기
기본적인 layout 은 아래 경로에 제공된다. 이 녀석을 이용해서 간단한 view(resources\views\welcome.blade.php) 를 하나 만들자.- resources\views\layouts\app.blade.php
Route::get('/', 'ListController@show');
<!--welcome.blade.php--> @extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-10 col-md-offset-1"> <div class="panel"> @if(Auth::check()) <!-- Table --> <div class="panel-body"> You are logged in! </div> @endif @if(Auth::guest()) <a href="/login" class="btn btn-info"> You need to login</a> @endif </div> </div> </div> </div> @endsection
DB Migration
migration 을 해서 db 를 만들어 줄 수 있는데, 이때 .env file 에 db 정보를 setting 해줘야 한다.- <project>/.env
- config\database.php
sqlite3 설정
여기서는 db 로 sqlite3 를 사용할 것이다.
php.ini
먼저 php.ini dptj
extension=php_sqlite3.dll extension=php_pdo_sqlite.dll를 추가해 줘야 한다.
sqlite db 생성
sqlite3 을 위해서 일단 아래 path 에 sqlite file 을 하나 만들자.
- database\database.sqlite :
- absolute path 는 c:/a/programming/php/laravel/test1/database/database.sqlite 이다.
laravel 설정
그리고 .env 에 아래같이 설정을 해주자.
DB_CONNECTION=sqlite DB_DATABASE=c:/a/programming/php/laravel/test1/database/database.sqlite
migrate
php artisan migrate그러면 아래처럼 table 이 생성된다.
Test
test server 를 실행하고php artisan serve
localhost:8000 에 접속하면,
- resources/views/welcome.blade.php
References
- Creating your first Laravel app and adding authentication
- The auth scaffold in Laravel 5.2 - Matt Stauffer on Laravel, PHP, Frontend development
- Database: Getting Started - Laravel - The PHP Framework For Web Artisans
포스팅, 잘 보고 갑니다~.
답글삭제네~ 좋은 하루 되세요
삭제많은 도움이 되었습니다.
답글삭제감사합니다.
작성자가 댓글을 삭제했습니다.
답글삭제password.blade.php 이 파일이 생성이 안되는 데 어떻게 하면 되나요~?
답글삭제https://github.com/zhenqing/Laravel/blob/master/resources/views/emails/password.blade.php
삭제위처럼 github 등에서 찾아 보실 수 있을 듯 합니다.
참고하세요.
자세한 설명 감사합니다!
답글삭제