내 문제는 지금 모델 검증의 집합을 가지고 있다는 것입니다과 같이 규칙 :CakePHP를
var $validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'uri' => array(
'slugged' => array(
'rule' => '/^[a-z0-9-_]+$/i',
'message' => 'This field should only contain characters, numbers, dashes and underscores'
),
'uniqueUrl' => array(
'rule' => array('uniqueUrl'),
'message' => 'A page has already acquired this url'
)
),
'meta_keywords' => array(
'rule' => 'notEmpty'
),
'meta_description' => array(
'rule' => 'notEmpty'
),
'layout' => array(
'rule' => 'notEmpty'
)
);
문제는 hasOne의 관계가 다른 모델의 컨트롤러는 데이터를 삽입한다는 것입니다 그것으로. 나는 그 페이지에서 제목, URI 및 레이아웃을 요구하지 않습니다. 어떻게해야합니까?
나는 포스트 모델을 가지고 거기에서 페이지 값을 설정했습니다.
Array
(
[Post] => Array
(
[title] => data[Post][title]
[body] =>
Post Body
)
[Category] => Array
(
[Category] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
)
[Page] => Array
(
[meta_keywords] => data[Page][meta_keywords]
[meta_description] => data[Page][meta_description]
)
)
내가 페이지 모델에 대한 정보를 설정하려면 컨트롤러에서이 작업을 수행
$this->data['Page']['title'] = $this->data['Post']['title'];
이 이렇게 될집니다 :
Array
(
[Post] => Array
(
[title] => data[Post][title]
[body] =>
Post Body
)
[Category] => Array
(
[Category] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
)
[Page] => Array
(
[meta_keywords] => data[Page][meta_keywords]
[meta_description] => data[Page][meta_description]
[title] => data[Post][title]
)
)
내 문제는 내가 필요하지 않은 것입니다 저장시 Page
필드. Post belongsTo Page
.
포스트를 포스트로 저장하는 경우 포스트 컨트롤러에서 메소드의 기본보기를 사용하면 [Page][layout]
이 필요하지 않습니다. 페이지는 정적 페이지를 사용하며 페이지를 만들 때 필요하며 게시물을 만들 때 필요하지 않습니다.
유효성 검사 규칙은 데이터베이스에 들어오는 것을 "보호해야"하므로 이상하게 들립니다. 빈 제목이 허용되면 규칙은 'notEmpty'가 아니어야합니다. 명확히하십시오. 필드 중 하나만 업데이트하고 프로세스에서'title' 등을 만질 필요가 없다는 것을 의미합니까? – deceze
사실, 나는 다른 모델로부터 정보를 얻어야한다. Post [ 'title'] 등에서 Page [ 'title]을 얻고 싶을 것이다. 나는 컨트롤러에 저장하고 saveAll 바로 전에 값을 설정해야한다. 방법? –
이미 그랬지만 다른 방법이 있다면 생각하고있었습니다. –