댓글 많이 달린 tricks
서비스 환경에서 artisan 실행시 실행 여부 묻기
by river
서비스 환경에서 migrate:refresh 같은 artisan 명령어를 실행시켜 의도치 않게 DB를 날릴 수도 있다. 이를 보완하기 위해서 다음의 코드를 artisan 앞에 추가하면 서비스 환경에서는 artisan 명령 실행시…
생성 날짜별 정렬 쿼리 축약형 메소드
by river
Illumiate\Database\Query\Builder 객체에는 생성 날짜별 정렬에 대한 축약 메소드를 제공한다. <?php MyModel::where('user_id', $userId)->orderBy('created_at', 'desc')->first(); // 동일한 코드 MyModel::where('user_id',…
jQuery ajax 호출시 CSRF 막기
by river
jQuery ajax 호출시 CSRF 막기 master layout 파일 수정 <meta name="_token" content="{{ csrf_token() }}" /> . . . <script> /* </body> 태그 전에 */ $(function() { $.ajaxSetup({ headers: { 'X-CSRF-Token':…
php 내장 웹서버 실행하기
by river
php는 5.4부터 웹서버를 내장하고 있다. 개발이나 간단한 테스트시 이 웹서버를 사용하면 편하다. Laravel에서는 php artisan serve을 이용해서 내장 웹서버를 실행할 수 있다. $ php artisan serve Laravel…
asset 버전 관리하기
by river
css나 javascript등은 페이지 로드 속도를 개선하기 위해서 보통 웹서버 설정시 만료 날짜를 길게 잡는다. 참고 : Add a far future Expires header to your components. css, javascript 파일이 수정됐을 때는,…
laravel 5.4 새 기능
by river
동영상 Laracast 무료 시리즈 - What's New in Laravel 5.4 Laracast 무료 시리즈 - Laravel 5.4 From Scratch Laravel 5.4 New Features - Part 1: All the Small Changes Overview Part 2: Laravel Mix [Laravel 5.4 New Features] articles What’s New…
Raw Queries DB::select, DB::statement
by river
DB::select DB::select는 Eloquent나 쿼리 빌더로 해결하기 어려운 복잡한 쿼리를 수행해서 데이타를 선택할 때 사용하면 좋다. 다음의 코드를 생각해 보자. $someVariable = Input::get("some_variable"); $results =…
redis, logstash, elasticsearch, kibana를 이용해서 실시간 로그 모니터링 하기
by river
웹서비스를 운영하다 보면 장애 탐지나 버그 수정 등 많은 경우 로그 정보에 의존해서 문제를 해결하게 된다. redis, logstash, elasticsearch, kibana의 조합을 사용하면 Laravel에서 남기는 로그의…
Eloquent 쿼리, 파일에 로그 남기기
by river
Before you start with this create a file in your logs folder (eg : 'query.log') and grant laravel write access to it. Place the snippet in your '/app/start/local.php' file. (or routes.php or anywhere...) Access artisan from your console and type this $…
다중 환경 설정하기
by river
개발, 스테이징, 서비스 등 Laravel 동작 환경을 여러 개로 나누고 각각의 환경에 맞게 설정을 따로 가져가는 방법을 알아보자. 1. 환경변수를 이용하는 방법 bootstrap/start.php 파일에서 환경…
DB 테이블에 기본 timestamps 컬럼 외에 다른 날짜타입 컬럼 추가하기
by river
블로그 글을 담고 있는 posts 테이블이 있고, 다음과 같이 컬럼이 구성되어 있다. Schema::create('posts', function($table) { $table->increments('id'); $table->string('title'); $table->timestamps(); // 마지막 수정일…
composer.json의 require, reduire-dev의 차이점
by river
composer.json에 패키지 의존성을 정의할 때 require와 reuire-dev를 사용한다. { ... "require": { "laravel/framework": "4.1.*" }, "require-dev" : { "mockery/mockery" : "dev-master", "phpunit/phpunit" : "3.7.*", "codeception/aspect-mock" :…
Eloquent의 Accessors와 Mutators
by river
DB에서 데이터를 읽을 때, 혹은 저장할 때 규칙을 정해서 값을 변환하고 싶을 때가 있다. 날짜를 읽을 때 YYYY-MM-DD의 문자열로 바꾼다든지, 비밀번호를 저장할 때 해시코드로 저장하든지 등을…
blade 템플릿의 `{{`와 `{{{`의 차이점
by river
블레이드 템플릿에서는 화면 출력을 위해서 이중괄호({{..}})와 삼중괄호({{{..}}})를 사용할 수가 있다. 이 두 가지의 차이점은 무엇인가? 다음의 내용을 갖는 블레이드 템플릿 파일이 있다고…
모델의 날짜 출력 포맷 정하기
by river
Eloquent의 Accessor를 사용해서 날짜의 출력 포맷을 정할 수 있다. class Post extends Eloquent { public function getUpdatedAtAttribute($value) { return Carbon::parse($value)->format('d/m/Y H:i:s'); } public function…