laravel 프로젝트 - hello,world 출력

hyHA·2023년 11월 12일
0
post-custom-banner

database 생성

mysql에 database 생성하기

> mysql -u root -p 
mysql에 접속 !!!

mysql> create database laravel_api;
Query OK, 1 row affected (0.00 sec)

mysql> use laravel_api;
Database changed

mysql> select database();
+-------------+
| database()  |
+-------------+
| laravel_api |
+-------------+
1 row in set (0.00 sec)

mysql> show tables;
Empty set (0.00 sec)

테이블 생성

mysql> CREATE TABLE board (
    -> `username` varchar(20) NOT NULL,
    -> `title` varchar(20),
    -> `views` int(5) DEFAULT 0,
    -> `date` char(10),
    -> `time` char(5),
    -> PRIMARY KEY(username, date, time)
    -> );
Query OK, 0 rows affected, 1 warning (0.02 sec)

데이터 입력 후 테이블 출력하기

mysql> INSERT INTO board 
	-> (username, title, views, date, time)     
    -> VALUES ('hee', 'test', 0, '220222', '09:00');
Query OK, 1 row affected (0.00 sec)

mysql> select * from board
    -> ;
+----------+-------+-------+--------+-------+
| username | title | views | date   | time  |
+----------+-------+-------+--------+-------+
| hee      | test  |     0 | 220222 | 09:00 |
+----------+-------+-------+--------+-------+
1 row in set (0.00 sec)

참고 - mysql 서버 시작 후에는 종료를 따로 해야하는지 확인하자.
서버 종료하지 않고 다음날 이어서 코드 작성하려고 mysql 서버를 시작했는데 아래와 같은 에러코드가 떴다.
ERROR! The server quit without updating PID file (/usr/local/var/mysql/Heeui-MacBookPro.local.pid).
해결은 구글링해서 mysql 삭제 후 재설치, db생성 후 마이그레이션까지 죄다 다시 진행했다;;
이후 서버 시작시 위와 같은 오류문구는 뜨지 않았으나 혹시 어제 종료 안해서 그럴수도 있으니 서버 사용 후 종료하자!

mysql 서버 시작과 종료 명령어는 아래와 같다

  • 실행
    mysql.server start
    brew services start mysql
  • 종료
    mysql.server stop
    brew service stop mysql

라라벨 프로젝트에서 해당 database 사용하기

라라벨 프로젝트 폴더 vscode로 열기

.env 파일에서 mysql의 데이터베이스 정보가 올바르게 입력되었는지 확인하기

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_api
DB_USERNAME=root
DB_PASSWORD=비밀번호 입력

config 폴더의 database.php 파일에서 'mysql' 의 collation 설정을 바꿔서 인코딩 문제가 발생하지 않도록 대비

'collation' => 'utf8mb4_general_ci',

database migration

> php artisan migrate
> php artisan migrate:reset
> php artisan migrate

이후 php artisan serve 후 브라우저에 접속 시 우측 상단에 register와 login 버튼이 정상 출력되는지 확인

아래 코드를 입력시 내가 생성한 board 테이블 외에 5개가 잘 출력이 되는지 확인

mysql> use laravel_api;
Database changed
mysql> show tables;
+------------------------+
| Tables_in_laravel_api  |
+------------------------+
| board                  |
| failed_jobs            |
| migrations             |
| password_reset_tokens  |
| personal_access_tokens |
| users                  |
+------------------------+
6 rows in set (0.00 sec)

VS 코드 작성

지금부터는 VS파일에서 작성했다

php artisan make:model -mrc Blog를 작성하면 아래처럼 cmd를 누른 상태에서 바로 갈 수 있는 3개 링크가 생김.

➜  blog git:(main) ✗ php artisan make:model -mrc Blog 

   INFO  Model [app/Models/Blog.php] created successfully.  

   INFO  Migration [database/migrations/2023_11_12_094058_create_blogs_table.php] created successfully.  

   INFO  Controller [app/Http/Controllers/BlogController.php] created successfully.  

web.php

routes/web.php에 아래처럼 코드 추가

<?php

//새로 작성할 코드
use App\Http\Controllers\BlogController;

...
//기존에 있던 코드
Route::get('/', function () {
    return view('welcome');
});

//새로 작성할 코드
Route::resource('blog', BlogController::class)  // 'blog' 리소스에 대한 라우트 정의
    ->only(['index', 'store'])                // 'index' 및 'store' 액션만 허용
    ->middleware(['auth', 'verified']);       // 'auth' 및 'verified' 미들웨어 적용

위 코드 작성 후 vs 터미널에서 아래와 같이 입력 시 리스트 잘 출력되는지 확인하자

➜  blog git:(main) ✗ php artisan route:list

BlogController.php

이제 BlogController.php를 수정하자.
위에서 생성된 링크로 편하게 이동하자

//기존 코드
<?php

namespace App\Http\Controllers;

use App\Models\Blog;
use Illuminate\Http\Request;
//새로 작성할 코드
use Illuminate\Http\Response;


class BlogController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    //기존 코드에서 아래처럼 수정하자
    public function index(): Response
    {
        return response('Hello, World!');
    }

이제 서버를 띄운 후 브라우저에 접속하자
php artisan serve

아래 화면에서 회원가입을 진행 후

아래처럼 hello,world 출력되는지 확인

참고
https://velog.io/@diduya/macOS-Laravel-%EC%84%A4%EC%B9%98%ED%95%98%EA%B3%A0-database-migration-%ED%95%98%EA%B8%B0
https://www.youtube.com/watch?v=1x-KrmwGf4M&list=PLTb3qGCzYjS3qRYk3srTAyrHBnwbML_9m&index=50

profile
룰루랄라
post-custom-banner

0개의 댓글