CakePHP 2.x CookBook 중국어 버전 5장 컨트롤러 비계

5693 단어 cakephp

비계


응용 프로그램 비계는 프로그램이 구축, 조회, 업데이트, 삭제 대상을 가진 응용 프로그램을 정의하고 만들 수 있도록 하는 기교이다.CakePHP의 비계는 프로그램원이 대상이 다른 대상과 어떻게 상호작용하는지 정의하고 연결을 만들거나 끊을 수 있도록 한다.
비계는 모형과 컨트롤러를 만드는 데 쓰인다.컨트롤러에 $scaffold 변수를 설정하면 실행할 수 있습니다.
CakePHP의 비계는 매우 멋있다.그것은 몇 가지 안에 기본적인 CRUD 프로그램을 완성할 수 있게 한다.그것은 심지어 네가 제품 응용 프로그램에서 그것을 사용하고 싶을 정도로 멋있다.네, 우리도 그것이 매우 멋있다고 생각하지만, 그것은 단지 비계일 뿐이라는 것을 기억하세요.
그것은 프로젝트를 빠르게 시작할 때 언제든지 버림받을 수 있는 느슨한 구조다.그것은 완전하지도 유연하지도 않고, 단지 가동되고 진행되는 임시 방안일 뿐이다.논리나 보기를 사용자 정의하고 싶다면 비계를 뜯고 코드를 쓰기 시작할 때다.CakePHP의 Bake 컨트롤러는 다음 단계에 좋은 선택입니다. 현재 비계 결과(또는 더 많은 기능)와 같은 코드를 생성합니다.
비계는 웹 응용 프로그램의 초기 코드를 작성하기 시작하는 좋은 방법이다.초기의 데이터베이스 구조는 수시로 변경되었는데 이것은 설계 과정의 초기에 완전히 정상적이었다.그 부정적인 영향은 웹 프로그래머가 영원히 쓸 수 없을 것 같은 폼을 만드는 것을 몹시 원망한다는 것이다.프로그래머의 이런 쓸데없는 노동을 줄이기 위해 CakePHP에는 비계가 들어갔다.비계 분석 데이터베이스 테이블 및 구축 1.추가, 삭제, 편집 단추가 있는 표준 목록2. 표준 편집 폼;3 데이터베이스의 단일 구성원과 상호작용하는 표준 보기.
응용 프로그램에 비계를 추가하려면 컨트롤러에 $scaffold 변수를 추가하면 됩니다.
1 class CategoriesController extends AppController {

2     public $scaffold;

3 }
기본 Category 모델 클래스 파일을 더 많이 만들었다면 (/app/Model/Category.php) 방문하십시오.http://example.com/categories너의 새 비계를 살펴보아라.
주해
비계로 구성된 컨트롤러에서 새로 만드는 방법은 예상치 못한 결과를 가져올 수 있다.예를 들어, 만약 당신이 비계 컨트롤러에 index () 방법을 세웠다면, 당신의 index 방법은 비계 기능이 렌더링되기 전에 우선적으로 렌더링될 것입니다.
비계는 모델의 관계를 이해하기 때문에 만약에 Category 모델이 (belongsTo) 하나의 User 모델에 속한다면,Category 목록에서 관련된 User ID를 볼 수 있습니다.비계는 모델 간의 관계를 알고 있지만, 비계 보기에서 관련 기록을 볼 수 없습니다. 모델에 수동으로 관련 코드를 추가할 때까지.예를 들어, Group hasMany User가 있고 User blongsTo Group이 있는 경우 다음과 같은 코드를 User와 Group 모델에 수동으로 추가해야 합니다.이러한 코드를 추가하기 전에 뷰는 New User 양식에 빈 Group 드롭다운 목록 상자를 표시합니다.이러한 코드를 추가하면 보기는 New User 양식에 Group 양식의 ID 또는 이름으로 구성된 드롭다운 목록을 표시합니다.
1 // In Group.php

2 public $hasMany = 'User';

3 // In User.php

4 public $belongsTo = 'Group';
한 ID에서 더 많은 것을 보고 싶다면, 모델에 $displayField 변수를 설정할 수 있습니다.Google User 클래스에 $display Field 변수를 설정하여 비계에 ID 대신 categories와 연결된 사용자의 이름을 표시합니다.이 기능을 사용하면 여러 인스턴스에서 비계의 읽기 성능이 향상됩니다.
1 class User extends AppModel {

2     public $displayField = 'first_name';

3 }
비계를 사용하여 간단한 관리 인터페이스를 구축하다
만약 당신이 app/Config/core에 있다면.php에서 admin을 허용하는 루트를 설정하면Configure::write('Routing.prefixes',array('admin')를 사용할 수 있습니다.의 비계는 관리 인터페이스를 구축한다.
관리자 경로를 허용하면, 관리자 접두사를 비계 변수에 붙이기만 하면:
1 public $scaffold = 'admin';
관리자 비계 동작에 액세스할 수 있습니다.
http://example.com/admin/controller/index

http://example.com/admin/controller/view

http://example.com/admin/controller/edit

http://example.com/admin/controller/add

http://example.com/admin/controller/delete
이런 방법은 아주 빠르게 간단한 백엔드 인터페이스를 세울 수 있다.비계에서는 관리자와non-admin 두 가지 방법을 동시에 사용할 수 없습니다.정상적인 비계에서는 자신의 방법으로 덮어쓰거나 다른 방법을 바꿀 수 있다.
1 public function admin_view($id = null) {

2   // custom code here

3 }
일단 비계의 동작을 바꾸면, 이 동작의 보기 파일을 만들어야 한다.

사용자 정의 비계 보기


비계 보기에서 다른 것을 돌리고 싶으면 템플릿을 만들 수 있습니다.우리는 비록 이런 기술로 응용 프로그램을 구축하는 것을 추천하지 않지만, 원형 교체 단계에서 이러한 사용자 정의 기능은 여전히 유용하다.
지정된 컨트롤러의 비계 보기(예: PostsController)를 사용자 정의하여 파일 위치와 이름을 다음과 같이 지정합니다.
/app/View/Posts/scaffold.index.ctp

/app/View/Posts/scaffold.form.ctp

/app/View/Posts/scaffold.view.ctp
모든 컨트롤러에서 비계 보기를 사용자 정의하려면 파일 위치와 이름이 다음과 같습니다.
/app/View/Scaffolds/index.ctp

/app/View/Scaffolds/form.ctp

/app/View/Scaffolds/view.ctp

좋은 웹페이지 즐겨찾기