안녕하세요 상훈입니다.

Simple-Book-App 강좌 완료 하였습니다. 실제 걸린 시간은 저것의 xN 하면 되고...

저는 아무것도 모르는 감자입니다!! 하하.

 

 

사용한 UI Format 은 BootStrap , 그리고 FontAwesome 입니다!

BackEnd 언어는 Laravel(PHP) 입니다.

 

원래는 Front Framework로 Vue.js를 넣으려고 했으나,

아직 그 단계는 아니고 LaravelBootstrap, Fontawesome 정도만 얹어서 진행하게 되었습니다.

 

구성 내용으로는 기본적인 CRUD를 적용하였습니다.

추가, 수정, 삭제, 상세보기(를 안했네요). 상세히 볼게 이미지 말고는 없어서 딱히 할 것도 없습니다. ㅎㅎ

기존에 알고 있던 내용도 있었고, 처음 보는 내용도 있었습니다.
$message, route(' ', data), if를 이용한 기존 데이터 존재유무에 따른 UI 등등...

 

Bootstrap을 이용하여 NavBar를 구성하였고,

부트스트랩 조와요

 

 

Font-Awesome을 이용하여 아이콘(icon)을 가져오기도 하였습니다. 

이미지가 왜 안뜨는지 이해를 못하겠다.

그런데, 이상하게도 이미지의 경로를 못잡아서 해당 내용이 제대로 뜨질 않고
alt 에 작성해놓은 내용만 표기가 되더라구요.. 왜그러는걸까.... ㅠㅠ

 

이부분은 조금 더 공부해봐야 할 것 같습니다. [ 화이팅..! 미래의 상훈! ]

 

반응형

안녕하세요 상훈입니다.

Laravel - validation 부분에서 Request를 이용하여 Controller에 아무것도 작성하지 않은 채로 유효성 조건을 작성할 수 있는 방법을 포스팅하겠습니다.

1. Request 생성, 작성
2. Controller에서 조건 작성

 

생각보다 짧고 간단합니다!

테이블을 먼저 소개하겠습니다. 

테이블

이 중에서 3가지, Name, Description, Category유효성 검사를 하도록 하겠습니다.

 

$ php artisan make:Request 파일명

 - 말 그대로 Request를 생성하는 명령어 입니다.

 

App/Http/Requests/파일명.php

로 해당 내용이 생성되어졌을 것입니다. 확인해주세요!

경로: App/Http/Requests/...php

 

이제 Request의 내용을 작성하도록 하겠습니다.

ex) name 이라는 컬럼은 '필수', '최소 2글자', '최대 120글자' 로 설정하였습니다. 

 

사용하시는 Controller로 돌아와서,

  - use로 해당 Request를 추가해주고,

원래 Form의 내용을 전송 받을 때 Request 사용하던 것을 Request파일명으로 변경합니다.

 

그럼 끝!!!
확인해볼까요?

title에 작성한 내용은 유효성 검사를 통과하여 danger 문구가 없지만,
나머지 값들은 작성하지 않았기에 danger가 출력되었습니다.

감사합니다.

 

 

혹시 Html 부분을 모르시겠다? 하시는 분들만 봐주세요

error 문구 작성

@if($errors->has('name'))
  <span class="text-danger">{{ $errors->first('name') }}</span><br>
@endif

has('name') 부분과 first('name') 부분만 태그의 이름과 동일하게 변경해주시면 됩니다.

 

이상입니다.

 

 

 

반응형

안녕하세요 상훈입니다.

라라벨에도 역시나 1:1, 1:N, N:N 등의 관계가 있습니다.  (다형성이라고 하던가..)

바로 attach, detach, sync, syncwithOutDetaching 등으로 사용할 수 있는데요,

공부한 바로서는 attach, sync는 해당 값이 존재하지 않으면 새로 생성을 해주고,

detach 등은 해당 값을 제외 모든 값을 삭제하는 역할을 합니다. 

[ 반박환영,, 아무것도 모르는 라린이입니다. ] 

 

항상 그렇듯이 대충 이해는 되는데 전체적으로는 무슨 소린지 잘 모르겠음..
자, 따라해봐~ 하면 이해되는데, 자! 해봐! 하면 못하겠어......

 

라라벨 공홈으로 들어가보니 해당 내용이 존재하였습니다. 차근차근 살펴보겠습니다.

역시나 제목은 다 : 다 였습니다. 다대다ㅋㅋㅋ
그리고 또 역시나 Eloquent 였구요, Eloquent 의 한부분을 조금 더 알아가는 계기가 되었네요.. ㅠ

 

 

사용하는 경우는 : "모델들을 합치는 중간 테이블에 기록을 추가" 하는 역할을 합니다. 

 

 

위에서 사용하였듯이 해당 값을 배열로도 사용할 수 있다고 합니다.

배열로 사용이 가능하다.

 

 

"detach" 메소드를 사용하여 N:N 관계를 삭제할 수 있습니다.

하지만, 두 모델은 모두 DB에 남을 것이라고 한다.

 

마지막으로 "sync, syncwithOutDetaching" 이다.
attach와 유사하게 사용이 가능하다.

이미지 클릭시 해당 링크로 이동

 

 

이상으로,, 그만 알아봅시다.

 

반응형

안녕하세요 상훈입니다. 

라라벨에서 게시글의 페이징 처리하는 방법에 대해 포스팅하겠습니다.

먼저, ui 설정하고, 진행하겠습니다. [ 이미 하신 분들은 건너뛰어도 무방합니다. ] 

$ composer require laravel/ui
$ php artisan ui bootstrap
$ npm install & npm run dev

 


 

1. Route
2. Controller
3. view

 

1. Route

Route::get('/', function () {
    $posts = Post::paginate(1);
    return view('home', compact('posts'));
});

 - table:posts의 데이터를 home.blade.php 경로로 보내준다고 선언합니다.

 

2. Controller

 - 컨트롤러에서는 바로 home.blade.view를 return 시켜줍니다.

 public function index()    {        
     return view('home');    
 }

 

3. View

<div class="card">
  <div class="card-body">
    @foreach($posts as $post)
      <p>{{ $post->title }}</p>
      <p>{{ $post->description }}</p>
    @endforeach
  </div>
  {{ $posts->links() }}
</div>

 

 

결과물

아무래도 bootstrap의 css를 끌어오지 못한 것 같다,,

 

 

 

 

반응형

안녕하세요 상훈입니다.

테이블 데이터를 업데이트 하는 2가지 방법을 포스팅하겠습니다.

 

// Router : web.php
Route::get('/posts/update/{id}', 'PostController@update');

// Controller
PostController

//table 
posts

//column 
title, body



1. save() 메서드 사용하는 방법

 - 정공법이지만, 불필요하고 깔끔하지 않습니다. 2번을 추천합니다. 

  PostController

public function update ($id) {
        $post = Post::find($id);
        $post->title = "updated title";
        $post->body = "updated body";
        $post->save();
    }

입니다. $id 값을 라우팅으로 받아오면, 해당하는 id를 가진 데이터를 조회하고, 직접 하나씩 바꿔주는 겁니다.

그리고 마지막에는 저장까지. 아주 정공법이죠. 비효율적이기도 하구요.

2번으로 넘어가겠습니다.

 


2. update() 메서드 사용하는 방법

Post::where('id', $id)->update([
            'title'=>'updated title2',
            'body'=>'updated body2'
        ]);

update 엘로퀀트(Eloquent)를 사용하여 해당 테이블의 컬럼의 id를 조회하고 업데이트하는 과정입니다.

자동으로 save.

 

이제 저장해주시고, uri를 통해 접속해주시면, table에 데이터가 변경되었음을 확인하실 수 있습니다.

uri 접속
table 조회

 

이상입니다.

 

 

반응형

안녕하세요 상훈입니다.

라라벨에서 slug 메서드를 이용해 무작위 데이터 생성하는 방법을 포스팅하겠습니다.

 

Laravel Korea 8.0 가이드

1. 라우팅 

Route::get('posts/store', 'PostController@store');

 

 - posts/store에 url을 타고 들어가면 데이터가 생성되도록 컨트롤러를 설정하도록 하겠습니다.

class PostController extends Controller
{
    // store post
    public function store () {
        $post = new Post;
        $post->title = "a new title";
        $post->body = "a new body";
        $post->slug = Str::slug($post->title);
        $post->user_id = 1;
        $post->save();
    }

}

 

 - slug: title과 똑같은 내용을 입력하겠다.

 

 

해당 uri에 접근하면, 자동으로 데이터가 입력됩니다.

 

자동으로 user_id도 증가한것을 확인하실 수 있습니다.

 

이상입니다.

 

반응형

안녕하세요 상훈입니다.

라라벨 - migration에서 명령어로 테이블의 컬럼을 추가하는 방법을 포스팅하겠습니다.

기본적인 테이블은 posts 라는 이름의 테이블로, 게시글을 저장하는 곳입니다.

 

posts migration / posts table desc

 

그 안에 데이터가 이렇게 있다고 가정하고 컬럼을 추가하는 과정을 그려보도록 하겠습니다.

 

내부에 존재하는 2개의 데이터

 

1. bash에서 migration 생성 (명령커맨드) 

php artisan make:migration add_user_id_to_posts_table

 - add   : 추가하겠다.

 - user_id  : 무엇을 ( user_id 라는 이름의 컬럼을)
   

** 자유롭게 작성해주셔도 무방합니다.

 - to  :  어떤 테이블에 

 - posts_table  :  적용하고자 하는 테이블명

 

2.  up() & down() 에 아래와 같이 작성

 

public function up()
    {
        Schema::table('posts', function (Blueprint $table) {
            $table->integer('user_id');

        });
    }

    public function down()
    {
        Schema::table('posts', function (Blueprint $table) {
            // rollback할 때
            $table->dropColumn('user_id');
        });
    }

 

3. migrate 실행

php artisan migrate

migrate 성공

 

4. 테이블 확인

 

데이터에 default 값이 들어간 컬럼이 생성되었습니다. 


이상입니다.

 

반응형
반응형

+ Recent posts