최근 tricks
Eager Loading 체이닝
by river
User, Phone, Post 세 개의 모델이 있고, 다음의 관계를 갖는다고 가정하자. class User extends Eloquent { public function phone() { return $this->hasOne('Phone'); } publif function posts() { return $this->hasMany('Post'); } }…
CORS middleware 간단설정
Ajax활용시 CORS설정을 해주지 않으면 브라우정에서 다른 도메인 주소로 Ajax요청을 하는것이 불가능하게 되어있다. 브라우저 정책상의 문제로 다른 매체로 링크활용시에는 아무런 문제없다.…
`Validation` 사용시 어떤 규칙에 위반됐는지 확인하는 방법
by river
Validation 사용시 어떤 규칙에 맞지 않아서 유효성 검사를 통과하지 못했는지 체크하는 방법 $rules = array( 'file' => 'required|max:1000' ); $validator = Validator::make(Input::all(), $rules); if ($validator->fails())…
뷰없이 이메일 발송하기
by river
결론을 먼저 얘기하면 Laravel에서 제공하는 기본 Mail 패키지를 사용하는 한 view 페이지 없이 메일을 발송할 수 없다. 하지만 다음의 꼼수를 사용하면 비슷한 효과를 낼 수 있다.…
컨트롤러에서 필터 등록하기
by river
class MyController extends \Controller { public function __construct() { $this->beforeFilter('auth'); } } class MyController extends \Controller { public function __construct() { $this->beforeFilter('auth', ['except' => 'login']);…
jsonp 처리하기
by river
브라우저에서 jQuery를 이용해서 블로그 데이타를 받고 싶은데, Cross Domain 문제 때문에 jsonp를 사용하고자 한다. $.ajax({ url: "https://example.com/api/posts", dataType: "jsonp", jsonp: "callback", success:function…
Blade에서 New LIne을 <br>로 바꾸기
by river
사용자가 입력한 내용을 그대로 출력을 하면 엔터키를 입력했더라도 그대로 붙어서 출력이 된다. 이를 보완하기 위해서는 nl2br함수를 사용해서 <br>태그로 변환을 하면 되는데, blade에서는…
Laravel 5.0에서 Blade 변경 사항
by river
Laravel 4.x에서 {{와 {{{는 다르게 동작한다. {{{는 출력시 이스케이프가 행해지고, {{는 그대로 출력된다. 보다 자세한 내용은 blade 템플릿의 {{와 {{{의 차이점을 참고하면 된다. Laravel 5.0에서는 {{,…
다중 DB 연결 사용하기
by river
다중 DB 설정하기 app/config/database.php <?php return array( 'default' => 'mysql', 'connections' => array( # Our primary database connection 'mysql' => array( 'driver' => 'mysql', 'host' => 'host1', 'database' => 'database1',…
Homestead를 이용해서 Laravel 개발 환경 만들기
by river
Laravel 개발 환경을 구축하기 위한 가장 쉬운 방법을 이제 Laravel에서 제공을 한다. 2014 Laracon에서 Taylor Otwell이 소개한 Homestead가 그것이다. Laravel 4.2부터는 local 환경 설정으로 homestead를 기본으로…
세션 사용하지 않기
by river
세션이 필요가 없는 경우, 세션의 사용은 큰 자원의 낭비이다. API 서비스 등이 대표적인 예일 것 같다. 다음 필터를 사용하면 특정 라우팅에 대해서 세션을 사용하지 않도록 할 수 있다.…
FreeTDS를 이용해서 MS SQL Server 연결시 날짜 포맷 지정하기
by river
linux 머신에서 Laravel 프레임웍을 이용해서 MS SQL Server에 접속할 때는 FreeTDS 라이브러리가 사용된다. 비록 이 환경이 바람직하다고 생각하지는 않지만, MS SQL Server를 사용하는 한 이 구성을…
로그 메시지에 회원 아이디, ip 등 원하는 정보 추가하기
by river
사이트를 운영하면서 오류가 발생을 하면 로그 정보에 많이 의존하게 된다. 하지만 Laravel이 기본으로 제공하는 로그 메시지로는 디버깅이 많이 불편하다. 그래서 로그 메시지에 원하는…
Vagrant, Vaprobash를 이용해서 Laravel 개발용 VM 만들기
by river
Vaprobash는 Implementing Laravel의 저자 Chris Fidao이 만든 Vagrant Provisioning 도구이다. Apache, MySQL, PHP 등 각종 소프트웨어 대한 설치 스크립트의 모임이라고 보면 될 것 같다. VM 만들기 Composer 설치 $ curl…