PHP Laravel – 데이터베이스 연결 및 CRUD 작업준비

#>php artisan make:controller PostsController --resource
생성위치 아래-
\app\Http\Controllers\Postscontroller.php
=================================================================

#>php artisan make:model Post -m
생성위치 아래-
\app\Post.php
\database\migrations\2019_03_18_070923_create_posts_table.php

위 생성된 파일을 아래와 같이 변경 한다.

public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id'); <-- 각각의 컬럼들임
$table->string('title'); <-- 각각의 컬럼들임
$table->mediumText('body'); <-- 각각의 컬럼들임
$table->timestamps(); <-- 각각의 컬럼들임
});

=================================================================

설치된 폴더의 최상위에 .env 파일에서 DB 정보 변경 아래 참조
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

=================================================================

/app/Providers/AppServiceProvider.php
파일에서 아래와 같이 추가함

use Illuminate\Support\ServiceProvider; <-- 기존에 등록된 코드 밑에

아래와 같이 추가
use Illuminate\Support\Facades\Schema;

그리고 boot() 함수를 아래와같이 수정
public function boot()
{
Schema::defaultStringLength(191);
}

=================================================================


위와 같이 적성후 터미널로 이동 아래와 같이 실행 한다.
그렇게 하면 \database\migrations" 폴더에 테이블 생성 하려고 했던것이
Databases create table 된다.
#> php artisan migrate
Migrating: 2019_03_18_070923_create_posts_table
Migrated: 2019_03_18_070923_create_posts_table
....


====================================================

데이터 베이스에 아래와 같이 값을 insert 시킨다.
#> php artisan tinker
Psy Shell v0.9.9 (PHP 7.0.33-0ubuntu0.16.04.2 — cli) by Justin Hileman
>>> App\Post::count()
=> 0
>>> $post = new App\post();
=> App\Post {#2853}
>>> $post->title = 'Post One';
=> "Post One"
>>> $post->body = 'This is the post body';
=> "This is the post body"
>>> $post->save();
=> true
>>> $post = new App\post();
=> App\Post {#2855}
>>> $post->title ='Post Two';
=> "Post Two"
>>> $post->body = 'This is post 2';
=> "This is post 2"
>>> $post->save();
=> true
>>> quit

==================================================================

우선 아래와 같이 현재 사용 하고 있는 route 의 action 에 대해 확인을 한다.
#> php artisan route:list
+--------+----------+----------+------+-----------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+----------+------+-----------------------------------------------+--------------+
| | GET|HEAD | / | | App\Http\Controllers\PagesController@index | web |
| | GET|HEAD | about | | App\Http\Controllers\PagesController@about | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | services | | App\Http\Controllers\PagesController@services | web |
+--------+----------+----------+------+-----------------------------------------------+--------------+


==================================================================

\routes\web.php 의 파일에서 아래와 같이 추가한다.

Route::get('/', 'PagesController@index'); <-- 기존에 있던것
Route::get('/about', 'PagesController@about'); <-- 기존에 있던것
Route::get('/services', 'PagesController@services'); <-- 기존에 있던것

Route::resource('posts','PostsController'); <-- 추가함

위와 같이 추가한다음에

==============================================================================

route 의 action 을 다시 터미널에서 확인하면 아래와 같다.

#> php artisan route:list
+--------+-----------+-------------------+---------------+-----------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-------------------+---------------+-----------------------------------------------+--------------+
| | GET|HEAD | / | | App\Http\Controllers\PagesController@index | web |
| | GET|HEAD | about | | App\Http\Controllers\PagesController@about | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | posts | posts.index | App\Http\Controllers\PostsController@index | web |
| | POST | posts | posts.store | App\Http\Controllers\PostsController@store | web |
| | GET|HEAD | posts/create | posts.create | App\Http\Controllers\PostsController@create | web |
| | GET|HEAD | posts/{post} | posts.show | App\Http\Controllers\PostsController@show | web |
| | PUT|PATCH | posts/{post} | posts.update | App\Http\Controllers\PostsController@update | web |
| | DELETE | posts/{post} | posts.destroy | App\Http\Controllers\PostsController@destroy | web |
| | GET|HEAD | posts/{post}/edit | posts.edit | App\Http\Controllers\PostsController@edit | web |
| | GET|HEAD | services | | App\Http\Controllers\PagesController@services | web |
+--------+-----------+-------------------+---------------+-----------------------------------------------+--------------+

위 내용의 출처 :  라라벨 https://www.youtube.com/watch?v=EU7PRmCpx-0&list=PLillGF-RfqbYhQsN5WMXy6VsDMKGadrJ-&index=1   을 참조해서 만들였습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다