인기있는 tricks
생성 날짜별 정렬 쿼리 축약형 메소드
by river
Illumiate\Database\Query\Builder 객체에는 생성 날짜별 정렬에 대한 축약 메소드를 제공한다. <?php MyModel::where('user_id', $userId)->orderBy('created_at', 'desc')->first(); // 동일한 코드 MyModel::where('user_id',…
서비스 환경에서 artisan 실행시 실행 여부 묻기
by river
서비스 환경에서 migrate:refresh 같은 artisan 명령어를 실행시켜 의도치 않게 DB를 날릴 수도 있다. 이를 보완하기 위해서 다음의 코드를 artisan 앞에 추가하면 서비스 환경에서는 artisan 명령 실행시…
Raw Queries DB::select, DB::statement
by river
DB::select DB::select는 Eloquent나 쿼리 빌더로 해결하기 어려운 복잡한 쿼리를 수행해서 데이타를 선택할 때 사용하면 좋다. 다음의 코드를 생각해 보자. $someVariable = Input::get("some_variable"); $results =…
Laravel 5.0에서 Blade 변경 사항
by river
Laravel 4.x에서 {{와 {{{는 다르게 동작한다. {{{는 출력시 이스케이프가 행해지고, {{는 그대로 출력된다. 보다 자세한 내용은 blade 템플릿의 {{와 {{{의 차이점을 참고하면 된다. Laravel 5.0에서는 {{,…
제목이 변경돼도 이전 링크로 블로그 글 찾아갈 수 있도록 URL slug 만들기
by river
Laravel로 블로그 시스템을 만들었다고 하자. 보통 블로그 글 URL은 Str::slug 메서드를 사용해서 만들게 된다. $url = Str::slug('My First Blog Post!'); // my-first-blog-post 슬러그(Slug)는 핵심 키워드 만을…
뷰없이 이메일 발송하기
by river
결론을 먼저 얘기하면 Laravel에서 제공하는 기본 Mail 패키지를 사용하는 한 view 페이지 없이 메일을 발송할 수 없다. 하지만 다음의 꼼수를 사용하면 비슷한 효과를 낼 수 있다.…
CORS middleware 간단설정
Ajax활용시 CORS설정을 해주지 않으면 브라우정에서 다른 도메인 주소로 Ajax요청을 하는것이 불가능하게 되어있다. 브라우저 정책상의 문제로 다른 매체로 링크활용시에는 아무런 문제없다.…
Eloquent의 Accessors와 Mutators
by river
DB에서 데이터를 읽을 때, 혹은 저장할 때 규칙을 정해서 값을 변환하고 싶을 때가 있다. 날짜를 읽을 때 YYYY-MM-DD의 문자열로 바꾼다든지, 비밀번호를 저장할 때 해시코드로 저장하든지 등을…
jsonp 처리하기
by river
브라우저에서 jQuery를 이용해서 블로그 데이타를 받고 싶은데, Cross Domain 문제 때문에 jsonp를 사용하고자 한다. $.ajax({ url: "https://example.com/api/posts", dataType: "jsonp", jsonp: "callback", success:function…
세션 사용하지 않기
by river
세션이 필요가 없는 경우, 세션의 사용은 큰 자원의 낭비이다. API 서비스 등이 대표적인 예일 것 같다. 다음 필터를 사용하면 특정 라우팅에 대해서 세션을 사용하지 않도록 할 수 있다.…
helper 함수는 어디에?
by river
자주 사용하는 간단한 유틸성 함수는 클래스의 정적 메서드나 퍼사드를 만드는 것 보다 함수로 만들어서 하나의 php 파일에 두고 쓰는 게 더 좋아 보인다. app/libraries 폴더를 만들고 여기에…
Laravel-4-Generator Cheat Sheet
by river
Laravel 필수 패키지 중 하나인 Laravel-4-Generators의 Cheat Sheet $ php artisan generate:migration create_posts_table $ php artisan generate:migration create_posts_table --fields="title:string, body:text” $ php artisan…
컨트롤러에서 필터 등록하기
by river
class MyController extends \Controller { public function __construct() { $this->beforeFilter('auth'); } } class MyController extends \Controller { public function __construct() { $this->beforeFilter('auth', ['except' => 'login']);…