laravel 학습 튜 토리 얼 액세스 기

6607 단어 laravel액세스 기
머리말
Laravel 은 간단 하고 우아 한 PHP 웹 개발 프레임 워 크 로 개발 자 를 스파게티 코드 에서 해방 시 킬 수 있 습 니 다.간단 하고 우아 하 며 표현 식 문법 을 통 해 좋 은 웹 애플 리 케 이 션 을 개발 할 수 있 습 니 다.다음은 작은 편집 에 따라 laravel 의 액세스 기 를 배 워 보 겠 습 니 다.
Eloquent:액세스 기 안내
접근 기와 메모리 에 서 는 Eloquent 모델 속성 값 을 가 져 오 거나 설정 할 때 포맷 할 수 있 습 니 다.예 를 들 어 하나의 값 이 데이터베이스 에 저장 되 기 전에 Laravel encrypter 를 암호 화하 고 모델 을 통 해 접근 할 때 이 속성 을 자동 으로 복호화 할 수 있 습 니 다.
사용자 정의 접근 기와 메모리 외 에 도 Eloquent 는 날짜 필드 를 Carbon 인 스 턴 스 로 자동 으로 변환 하거나 문자열 필드 를 JSON 으로 변환 할 수 있 습 니 다.
접근 기&접근 기
접근 기 정의
접근 기 를 정의 하기 위해 서 는 모델 에 getFooAttribute 방법 을 만들어 야 합 니 다.그 중Foo은 방문 해 야 할 열 이름 의 낙타 봉 방식 의 이름 입 니 다.이 예 에서,우 리 는first_name속성의 접근 기 를 정의 할 것 이다.이 접근 기 는 Eloquent 에서 first_name 속성 값 을 가 져 오 려 고 시도 할 때 활성 화 됩 니 다.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
 /**
  * Get the user's first name.
  *
  * @param string $value
  * @return string
  */
 public function getFirstNameAttribute($value)
 {
  return ucfirst($value);
 }
}
보시 다시 피 속성 원본 값 은 접근 기 에 전 달 됩 니 다.원본 값 을 조작 하고 포맷 된 값 을 되 돌려 줍 니 다.간단 한 접근first_name 속성 만 있 으 면 액세스 기 에서 이 값 을 접근 할 수 있 습 니 다:

$user = App\User::find(1);

$firstName = $user->first_name;
메모리 정의
메모리 하 나 를 정의 하기 위해 서 는 모델 에setFooAttribute방법 을 정의 해 야 합 니 다.그 중Foo은 방문 하고 자 하 는 열의 낙타 봉 스타일 의 이름 입 니 다.그렇다면 이번 에는first_name 속성 에 대한 메모리 정 의 를 내 립 니 다.이 메모 리 는 모델 이 속성 값 을 설정 하려 고 시도 할 때 호출 됩 니 다.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
 /**
  * Set the user's first name.
  *
  * @param string $value
  * @return string
  */
 public function setFirstNameAttribute($value)
 {
  $this->attributes['first_name'] = strtolower($value);
 }
}
저장 소 는 속성 에 설 정 된 값 을 받 습 니 다.이 값 을 조작 하고 모델 내부first_name 속성 에 설정 할 수 있 습 니 다.그래서 예 를 들 어 우리 가$attributes 속성 을first_name 로 설정 하려 고 한다 면:

$user = App\User::find(1);

$user->first_name = 'Sally';
이 예 에서Sally방법 은 호출 되 고 수반 된다setFirstNameAttribute.메모리 에 서 는 이름 을 소문 자로 만 든 다음 내부Sally배열 에 값 을 설정 합 니 다.
날짜 접근 기
기본적으로strtolower$attributes Eloquentcreated_at 인 스 턴 스 로 전환 합 니 다.이 인 스 턴 스 는 여러 가지 유용 한 방법 을 제공 할 수 있 고 원생 PHPupdated_at류 를 계승 할 수 있 습 니 다.
어떤 필드 를 자동 으로 변환 할 수 있 는 지 사용자 정의 할 수 있 습 니 다.심지어 이러한 변환 을 완전히 사용 하지 않 습 니 다.모델 에 복사 Carbon속성 이 필요 합 니 다.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
 /**
  * The attributes that should be mutated to dates
  *
  * @var array
  */
 protected $dates = ['created_at', 'updated_at', 'deleted_at'];
}
날짜 로 여 겨 질 때 UNIX 타임 스탬프,날짜 문자열DataTime,시간 문자열,$dates 인 스 턴 스 로 설정 할 수 있 으 며 날짜 값 은 자동 으로 데이터베이스 에 저 장 됩 니 다.

$user = App\User::find(1);

$user->deleted_at = Carbon::now();

$user->save();
위 에서 말 한 바 와 같이 가 져 온 속성 이Y-m-d속성 이 열거 한 값 일 때DateTime / Carbon 인 스 턴 스 로 자동 으로 전 환 됩 니 다.이것 은 속성 적 으로$dates방법 을 사용 할 수 있 습 니 다.

$user = App\User::find(1);

return $user->deleted_at->getTimestamp();
기본적으로 시간 스탬프 는Carbon형식 으로 포맷 되 었 습 니 다.시간 스탬프 의 형식 을 사용자 정의 하려 면 모델 에 속성Carbon을 설정 해 야 합 니 다.이 속성 은 날짜 속성 이 데이터베이스 에 어떻게 저장 되 는 지,모델 이 직렬 화 되 거나Y-m-d H:i:s화 될 때 어떻게 보 여 주 는 지 확인 합 니 다.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
 /**
  * The storage format of the model's date columns.
  *
  * @var string
  */
 protected $dateFormat = 'U';
}
속성 변환
모델 에서 속성 을 정의 할 수 있 습 니 다$dateFormat .속성 을 일반적인 데이터 형식 으로 편리 하 게 변환 할 수 있 습 니 다.JSON속성 은 하나의 배열 이 어야 하 며,각 항목 의 키 는 변환 이 필요 한 속성 명 이 어야 하 며,키 에 대응 하 는 값 은 속성 변환 이 필요 한 유형 이 어야 한다.지원 하 는 전환 유형 은$casts ,$casts,integer,real,float,double,string,boolean,object,array,coolectiondate입 니 다.
예 를 들 어,우 리 는datetime속성 을 변환 합 니 다.데이터베이스 에 저 장 된 값 은 하나의 정형(0 또는 1)이 고,우 리 는 그것 을 불 값 으로 변환 합 니 다.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
 /**
  * The attributes that should be casted to native types.
  *
  * @var array
  */
 protected $casts = [
  'is_admin' => 'boolean',
 ];
}
현재,당신 이timestamp속성 에 접근 할 때마다 그 값 은 불 값 으로 변 환 됩 니 다.설령 데이터베이스 에 저 장 된 정형 값 이 라 하 더 라 도:

$user = App\User::find(1);

if ($user->is_admin) {
 //
}
배열 변환 is_admin변 환 된 유형 은 JSON 값 을 직렬 화 하 는 열 을 저장 하 는 데 특히 유용 하 다.예 를 들 어 데이터베이스 에 TEXT 형식의 필드 가 있 고 직렬 화 된 JSON 이 저 장 됩 니 다.이 속성is_admin변환 을 추가 하면 Eloquent 모델 에서 이 속성 에 접근 하면 자동 으로 반 직렬 화 됩 니 다.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
 /**
  * The attributes that should be casted to native types.
  *
  * @var array
  */
 protected $casts = [
  'options' => 'array'
 ];
}
전의 정의 가 완료 되면array속성 에 접근 할 수 있 으 며,JSON 에서 PHP 배열 로 자동 으로 정렬 됩 니 다.array속성 에 값 을 설정 하면 주어진 배열 은 자동 으로 JSON 형식 으로 정렬 되 어 저 장 됩 니 다.

$user = App\User::find(1);

$options = $user->options;

$options['key'] = 'value';

$user->options = $options;

$user->save();
이상 은 여러분 을 위해 정 리 된 laravel 학습 튜 토리 얼 의 액세스 기의 모든 내용 입 니 다.필요 한 어린이 들 은 참고 하여 공부 할 수 있 습 니 다.어린이 들 은 계속해서 laravel 관련 지식 을 업데이트 할 것 입 니 다.계속 지 켜 봐 주 십시오.

좋은 웹페이지 즐겨찾기