CakePHP 2.x => 3.x 업그레이드 지침
1. 컨트롤러 레이어
1.find('list')
원본 2.x에서 이 메소드는 옵션에 'fields'를 지정하여 key=>value
를 구현합니다. 3.x는 'keyField'를 사용합니다. 그리고 옵션에 'valueField'를 추가하려면 toArray()
2.find('first'), find('count')
3.x에서는 이 두 매개변수를 완전히 포기하고 find()->first() 및 find()->count를 사용합니다. () 교체
3. 쿼리 관련 테이블을 찾을 때 'contain' 속성을 추가해야 합니다. Cake 3.x는 기본적으로 테이블을 연결하지 않습니다.
4.findById
**?관련 문서가 없나요?**
2.x의 findById 형식은 ($id,array $fields)입니다.
3.x는 하나의 매개변수만 가질 수 있습니다. ($ id), select(array $fields) 메소드를 통해 데이터를 필터링해야 합니다
5.Component->initialize()
2.x는 초기화(Controller $Controller)를 통해 Component를 호출하는 Controller를 얻습니다.
3.x에서는 초기화 매개변수를 초기화(array $config)로 변경했습니다. , $controller = $this->_registry->getController();를 통해
6.SessionComponent
3.x에서는 이 구성 요소를 버리고 $this->request->session()을 사용하여
2. 모델 레이어
1.Associations
2.x는 속성을 정의하여 연관을 실현합니다.
3.x는 Table >의 초기화 메소드에서 $this->belongsTo, $this->hasMany, $this-를 호출해야 합니다. ;belongsToMany, $this->addAssociations 및
2.Validation
2.x는 유효성 검사 속성을 정의하여 데이터 유효성 검사를 구현합니다.
3.x는
3.virtualFields
이 속성을 사용해야 하는 경우 Entity에
메소드를 추가해야 합니다. 예를 들어 테이블에 full_name 가상 필드를 정의해야 합니다. A
먼저 Entity의 테이블 A에 가상 필드 full_name을 정의해야 합니다. 보호 함수 _getFullName()
성명에 경솔하다ââ'¬â 드는¢
4.field()
3.x에서는 이 메소드를 포기하고 get() 메소드로 대체할 수 있습니다
5.ClassRegistry::init()
으로 대체되어야 합니다.
6.Mysql 별칭 설정
3.x는 alias 'fields'=>['table_id'=>'id']
등의 추가 키를 사용하세요.
3. 레이어 보기
(View 레이어, 2.x의 View 폴더에서 3.x의 Template으로 이동)
1.$this->Html->url
3.x에서는 대신 $this->Url->build를 사용하세요.
4. 버그
1. 연관
hasMany 테이블 연관을 쿼리할 때 필드를 지정해야 하는 경우 필드에 연관 키를 추가해야 합니까? ? ?
이번 업그레이드 가이드는 계속 업데이트됩니다~~~~~~
위 내용은 모든 측면을 포함하여 CakePHP 2.x의 3.0 업그레이드를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.