분류 전체보기 327

[Laravel] Console Command Argument 옵션

protected $signature = 'order:check {param?*}'; 필수 인수 protected $signature = 'order:check {param}'; 선택적 인수 protected $signature = 'order:check {param?}'; 기본값이 있는 선택적 인수 protected $signature = 'order:check {param=foo}'; 여러개의 값을 배열로 받기 (값 필수) protected $signature = 'order:check {param*}'; 여러개의 값을 선택적으로 배열로 받기 (빈값 허용) protected $signature = 'order:check {param?*}'; 배열 받을때 사용 예 $param = $this->argum..

Laravel 2023.01.03

[PHP] timestamp 로 밀리세컨즈 13자리 만들기

시간 비교시, 초 보다는 밀리세컨즈 단위로 비교하는 것이 보다 정확하기 때문에 13자리 또는 16자리(백만분의1초) 타임스탬프를 생성하여 비교하면 유용함. list($microtime, $timestamp) = explode(' ',microtime()); // 밀리세컨즈 (13자리) $time = $timestamp . substr($microtime, 2, 3); // 100만 분의 1 microtime 추가 (16자리) $time = $timestamp . substr($microtime, 2, 6);

PHP 2022.12.20

[Laravel] From Subquery 작성방법

Laravel 5.6 이상부터 fromSub() 사용 DB::query()->fromSub(function($q){ $q->from('table')->groupBy('name'); }, 'a')->select('a.id', 'a.name'); 위 쿼리는 아래와 동일한 SQL임 select a.id, a.name from (select * from 'table' group by 'name') as 'a' 또는 아래와 같이 사용 가능 쿼리빌더의 getQuery를 사용하여 작성. // Users Model 내 작성 public function getUsersListSubQuery() { return $this->select('id', 'name') ->leftjoin(...) ->where(...) ->gro..

Laravel 2022.12.13

[DB] 대용량 DB 무중단 배포 툴

대용량 데이터를 보유중인 테이블의 스키마 변경이 필요할 때 무중단, non-blocking 상태로 테이블 변경을 할 수 있게 도와주는 툴. pt-online-schema-change https://jojoldu.tistory.com/358 [mysql] Percona pt-online-schema-change 설치 및 사용하기 Mysql에서 몇억건 이상의 대량의 데이터를 갖고 있는 테이블을 수정 하는것은 쉬운일이 아닙니다. 단순히 alter table 을 해버리면 4시간, 5시간 이상 수행되기 떄문인데요. 이를 해결 하기 위해 create jojoldu.tistory.com

Mysql 2022.05.31

[Laravel] updateOrInsert

데이터가 존재하면 Update, 없으면 Insert 하는 기능 DB::table('users') ->updateOrInsert( ['email' => 'john@example.com', 'name' => 'John'], //조건 ['votes' => '2'] //update 또는 insert 데이터 ); email 과 name 이 조건과 일치하는 데이터가 존재할경우, votes를 업데이트한다. 데이터가 없을경우 새로 insert 한다. 주의 : Eloquent ORM 사용시 timestamp가 설정되어 있더라도 created_at, updated_at 자동적용 안됨 Laravel 8+ 부터는 upsert 메소드 생김 여러행의 row를 삽입 가능 DB::table('flights')->upsert([ ['..

Laravel 2022.04.06
반응형