Larvel에서 Migration을 작성할 때 단일 칼럼에 대한 Unique 속성이 아닌 여러 개의 컬럼을 대상인 복합키로 Unique 속성을 줘야 할 경우 아래처럼 사용이 가능합니다. 기존처럼 단일 컬럼에 Uniuqe를 부여하는 것이 아닌 public function up() { Schema::create('테이블 명', function (Blueprint $table) { $table->id(); $table->foreignId('participant_id')->comment('참여자 아아디')->unique(); $table->foreignId('product_id')->comment('상품 아아디'); $table->timestamp('created_at')->index()->comment('참여..
Laravel
라라벨로 개발을 진행하다 보면 퍼블리싱 팀에서 준 이미지 파일을 일일이 고치는 게 신물 나게 귀찮습니다. phpstorm의 정규식 검색 변경 기능을 사용하면 쉽게 수정이 가능합니다. 저 같은 경우에는 모든 이미지의 확장가가 png를 사용하다보니 아래와 같은 phpstorm의 정규식 검색을 사용했습니다. (.+)로 찾은 문구가 replace문구 $1로 매핑이 됩니다. 저는 자주 쓰기에 메모 용도로 해둡니다. src\=\"images(.+).png\" => src="{{asset('front/images$1.png')}}"
에러 상황 1. Ajax 요청 및 관리자 단을 들어가는 등 모델 사용 시 아래와 같은 에러 발생 2. ssh에서 php artisan route:list 입력 시 PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 262144 bytes) in 에러 발생 시도 - vagrant의 xdebug 설정을 다 주석처리 - homestead.yamll의 맵핑에 type:apache로 변경하기 를 시도해보았으나 nginx나 설정의 문제가 아닌 코드 상의 에러였습니다 해결 설정을 바꾸지 않았는데 단순히 502 에러라는 이유로 서버나 설정이 원인인 걸로 오해해서 8시간을 날렸네요 php artisan route:list..
phpinfo를 했을 경우 아래와 같이 xdebug가 깔려 있어야 합니다. 없을 시 아래 원문을 통해 다운로드하시길 바랍니다. 참고 : https://42coders.com/how-to-set-up-debugging-with-phpstorm-and-homestead/ How to set up debugging with PhpStorm and Homestead Many PHP developers rely on var_dump (or it’s reincarnations in frameworks: debug(), dump(), dd(), etc) when debugging their code, and in most cases this is 42coders.com 아래와 같이 나와야 합니다. 위와 같이 나올 경..
라라벨 API를 만들어보면서 패스포트를 알게 되었는데, 진행이 안돼서 개념부터 차근차근 정리해보려고 합니다. 1. OAuth 2.0 OAuth는 다른 서비스의 회원 정보를 안전하게 사용하기 위한 방법입니다. (편하게 2.0을 생략하겠음) 쇼핑을 사용하다 보면 물건을 사기 위해 구글로 로그인을 해야하거나 네이버 로그인을 해야 할 일이 필요한 경우가 있을 것입니다, 그것이 OAuth 입니다. 즉 다른 서비스의 정보를(구글, 네이버) 해당 사이트에(쇼핑 사이트)에 토큰을 통해 안전하게 넘기는 방법입니다. OAuth는 토큰을 통해 안전하게 데이터를 넘길 수 있기 때문에 RESTful API에서 가장 많이 쓰이는 인증 시스템입니다. API에서 인증은 브라우저에서 세션을 통해 자동 로그인을 해주는 세션 기반 인증을..
라라벨 프로젝트 내에서 리액트나, 뷰의 컴포넌트를 사용하는 방식입니다. 우선 공통으로 프론트엔드 스캐폴딩을 해주는 패키지인 laravel/ui 설치합니다. composer require laravel/ui 1. React.js 아래 명령어를 통해 React를 프로젝트 내에 추가합니다. php artisan ui react 그러면 다음과 같은 명령어를 하라고 권할 겁니다. npm install && npm run dev windows에 vagrant로 vm 위에서 홈스테드를 돌리고 있다면 에러가 발생할 수 있습니다. 윈도우의 vagrant는 보안 문제로 symlink을 막아뒀기 때문인데, 해결하려면 vagrant를 관리자로 접속 후 Shared-Folders-Enable-Symlinks-create을 활성..
1. 개요 더보기 리액트에서 나오는 컴포넌트와 같은 개념입니다. 기존에 라라벨에 있던 레이아웃과 같이 컴포넌트는 템플릿에서 템플릿을 불러오는 방법이고 슬롯은 레이아웃의 세션과 같이 컴포넌트에게 값을 넘기는 방법입니다. 컴포넌트의 정의는 아래의 네이버 지식인이 말해주는 그대로 모듈이이고, 슬롯은 그 모듈에 넘기는 일종의 파라미터로 보시면됩니다 2. 라라벨6 더보기 라라벨 6 버전까지는 컴포넌트를 아래 방식으로 사용합니다. 컴포넌트 파일을 아래와 같은 방법으로 선언합니다, 이때 다음에서 템플릿에서 넘긴 $슬롯명과 $slot을 사용할 수 있습니다. {{ 슬롯명 }} {{ $slot }} 생성한 컴포넌트를 사용할 블레이드 파일에서는 아래와 같이 선업합니다. @component('폴더명.파일명(경로)') @slo..
Kernel 컴퓨터에 커널은 보안, 자원관리, 하드웨어 추상화 등 운영체제의 핵심적인 역할을 합니다. 이와 마찬가지로 라라벨에서의 커널도 마찬가지로 중요한 역할을 수행합니다. 역할 사용자의 요청을 미들웨어에 전달하고 예외가 발생 시 알맞은 응답으로 처리합니다. 미들웨어를 거친 후 라우터로 전달된 요청은 해당 라우터에 연결된 로직을 처리합니다. 클로저나 컨트롤러에 반환되는 최종 응답을 클라이언트에게 제공합니다. 라라벨의 커널의 특징 커널을 2개가 있지만 HTTP 커널과 Console 커널로 이름과 같이 서로의 쓰임새도 다릅니다. 요청을 처리하기 전 준비 작업에서 환경(dev, production, local)을 판단하고 서비스 프로바이더를 준비합니다. HTTP 커널 bootstrappers(시작 코드)을 ..
라라벨 애플리케이션은 아파치 .htaccess 파일이나 Nginx의 서버 설정 같은 웹 서버의 설정을 가지고 있는데 이 설정은 url에 상관없이 모든 앱의 요청을 가로채서 public/index.php로 보냅니다. 즉 모든 요청에 대한 시작점은 pulbic/index.php 입니다. Public/index.php 의 주요 주요 기능 모든 의존성을 등록해주는 컴포저 오토로드 파일을 불러옵니다. require __DIR__.'/../vendor/autoload.php'; 애플리케이션의 컨테이너를 만들어주고 핵심 서비스를 등록해줍니다, 또한 커널 인스턴스를 만들어 사용자의 보내는 Request 객체의 인스턴스를 만들어 커널로 넘기고 커널은 일루네이트 Response 객체를 클라이언트(주로 브라우저)에 반환하고..
회사에서 프로젝트를 하던 와중 mysql 버전이 맞지 않는 일이 생겼습니다. 분명 저도 똑같은 release 버전으로 설치했는데 말이죠, 이유를 찾아보니 다음과 같았습니다. 사진을 보면 virtualbox의 버전이 10.0.0인 것을 알 수 있습니다. 10 버전부터는 MySQL의 버전이 5.7이 기본 설치가 안되며, 8부터 설치가 된다고 합니다. 즉 저희는 10 버전을 삭제하면 된다는 것입니다. 삭제법은 간단합니다 사용자 폴더 밑에 .vagrant.d 파일이 있을 것입니다 예시 : C:\C:\Users\me\.vagrant.d 파일 안에는 다음과 같이 boxes 폴더가 또 있을 것입니다. boxes 폴더로 이동하고 첫 번째의 laravel-어쩌고를 들어가시면 됩니다. vagrant box list 했을 ..