2012-06-17 3 views
0

UPDATE :데이터 모델의를 BeforeSave에 행동의 beforeValidate()에서 길을 잃지()

그것은 saveAll()를 사용할 때 저장하지 않습니다 슬러그 나타납니다. 나는 saveAll 직후에 save()을하고 있고, 지금은 작동하지만 명백한 kludge이고, 가능하다면 saveAll으로 작업하게 될 것입니다 ... 나는 슬러그를 생성해야하는 다른 모델을 가지고 있으며, d는 매번 슬러그를 만들기 위해 이중 저장하지 않아도됩니다.


원래의 질문 :

이 동작을 구현하기 위해 노력

: 그것은 잘 작동했다 https://github.com/vduglued/CakePHP-Sluggable-Behavior/blob/master/sluggable.php

하지만 최근에 그것은 중지 ... 나는 문제가 무엇인지 확실하지 않다, 또는 우리가 바꿨지 만 나는이라는 문제를 좁혔다.

동작의 beforeValidate(); 기능에서 올바른 슬러그를 데이터에 추가합니다. 나는 그 시점에서 $model->data을 디버깅 할 때, 그것은 보여줍니다 다른 데이터 중

Array('Article' => array('slug'=>'test_1234') ... 

합니다.

내 제 모델의 beforeSave()에서 해당 디버그 및 디버그 $this->data을 제거하면

, 그것은 SluggableBehavior 통해 추가 된해야 모든 데이터가 아니라 슬러그 필드를 보여줍니다.

행동을 바꿔야한다고 생각하지 않습니다. 이전에 잘 작동한다고 생각했는데 CakePHP 버전의 최근 업데이트가 동작 및 모델이 통신하는 방식을 변경 시켰습니까?

+0

데이브 당신이 컨트롤러 액션을 게시 할 수 있습니다이었다? – Leo

답변

0

이 saveAssociated (버그), 당신의 케이크 코어 업데이트

+0

CakePHP.org 사이트에 따르면 미래의 사용자를 위해 좀 더 구체적으로 "model :: saveMany(), saveAssociated()는 beforeValidate() 콜백에서 수정 된 데이터를 올바르게 저장합니다."라는 수정 사항을 최근에 추가했습니다. – Dave