> 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 서버 시작과 종료 명령어는 아래와 같다
라라벨 프로젝트 폴더 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',
> 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파일에서 작성했다
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.
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를 수정하자.
위에서 생성된 링크로 편하게 이동하자
//기존 코드
<?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