[Tip] Laravel with method specific columns

Laravel의 with method는 relation된 다른 테이블의 값을 함께 가져올 때 사용된다. 다만 이번 프로젝트에서 users 테이블의 연결된 logs의 timestamp 값 (created_at, updated_at)을 가져오고 싶었는데 hidden으로 감추기엔 모두 사용되는 값이였고, 그렇다고 모두 가져오기엔 필요없는 데이터와, 유저에게 표시되면 안되는 부분도 있어서 생성일만 가져오는게 제일인 상황에서 아래와 같이 코드를 짰었다. 리펙토링을 하는중에 가만 생각해보니 Raw로 쿼리를 짯을 땐 …

[Tip] UTF-8 Bom 문제 해결방법

PHP 에서 string을 외부에서 받아와 json_decode 등을 할 때 아무 이유없이 syntax error를 반환 하는 경우가 있다. 이럴땐 여러가지 의심을 할 수 있는데, 이번 이슈의 경우 Data를 가져온 곳이 web임을 가만했을때 가장 추측할 수 있는 것은 UTF8-BOM이다. BOM은 (Byte Oder Mark, BOM)으로 UTF-8, UTF-16을 구분하기 위해 윈도우에서 사용된다고 한다. 이런 경우 간단히 위 함수를 통해 …

[laravel] GuLa library

소개 GuL(a)ibrary (이하 구라블러리 ㅎ)는 sir.kr에서 만든 그누보드와 영카트의 테이블의 모델들을 묶어둔 라이브러리입니다.바로 DB를 바꿀순 없고 api, scheduler등 더 다양한 기능들을 기존 그누보드, 영카트를 유지하면서 laravel로 구현하기 위해 만들어졌습니다. 실은 그누보드로 만들어진 사이트 서로 연동 하는 작업하는데 raw php론 너무 힘들어서 만들엇습니다. ㅎ 특징 구라블러리는 그누보드와 Laravel에서 사용할 DB를 따로 분리하여 운영이 가능합니다.구라브러리는 Laravel의 relation을 …

[PHP] Multiple for(each), while escape

TL;TR; PHP는 중접된 반복문을 원하는 개수만큼 탈출할 수 있는,break 2;와 continue 2;를 지원한다. 다중 for문 PHP가 아니더라도 어디에든 다중 for문을 사용하는 것을 본적이 있을 것이다.물론, for문이 중첩되어있는걸 보면 경기를 일으키는 사람도 있지만,어쩔 수 없이 써야할수도 있고, 지식의 한계와 마감의 촉박함이 다중 for문을 만들어 낼 수 있는 부분은 어쩔수 없다. 뭐 그렇다치고, 모던 PHP그룹을 보던중 신기한(?) …

[PHP] Distinction Null and Undefined

TL;TR <?php array_key_exists(‘value’, get_defined_vars()) ?> 대게 주의에선 PHP에선 Null과 Undefined를 구별하지 못한다고 알려져 있다.나 또한 Null과 Undefined를 구별할 수 있는 방법이 없다고 생각했지만, 성능상의 이슈를 제외하고, PHP에서도 Null과 Undefined를 구분 할 수 있다. PHP에서 변수의 유효성을 확인하기 위해 가장 많이 사용되는 함수인 isset은 해당변수가 ‘정의 되어 있지 않’거나 변수의 값이 ‘Null’인 경우에 false를 반환한다. 즉, …

[Laravel] artisan 자동완성 (bash_completion)

source : https://gitlab.com/balping/artisan-bash-completion 기본적으로 자동완성 기능이 켜져 있는(. /etc/bash_completion)이 작동 중이라는 가정하에 작동한다. TL; DR $ composer require balping/artisan-bash-completion $ echo ‘alias artisan=”php artisan”‘ >> ~/.bash_aliases $ echo ‘. ~/.bash_aliases’ >> ~/.bashrc $ sudo cp ~/{vendor path}/vendor/balping/artisan-bash-completion/artisan /etc/bash_completion.d/artisan $ source .bashrc 결과물 silnex@uServer-For-Laravel:~/blog$ artisan [tab] [tab] app:name db:seed list make:factory make:observer migrate optimize queue:listen schedule:finish view:cache …