私はアイテムを持っています。目標は、ユーザーがアイテムを作成するときです アイテムを保存するときに電子メール アドレスを入力するよう求めます ユーザーが既に存在するかどうかを確認します 存在しない場合はバックグラウンドで一連のデフォルト値を使用して新しいユーザーを作成しますユーザーがアクティブ化したい場合、ユーザーはカムバックしてプロファイルを完了することができます。モデルでそれを行うにはどうすればよいですか。保存する唯一の方法は、オブジェクトパラメータでそれを行う方法を配列に渡すことです。
App::uses('User', 'Model');
class Item extends AppModel{
public function save($data = null, $validate = true, $fieldList = array()) {
$user = User::getUserbyEmail($data['Item']['email_address']);
if($user){
$user = new User();
$user->firstName = "Bob";
$user->save(); /// this save does not work
}
//get user Id and call parent save
.........
}
class User extends AppModel {
public $firtName;
private $created;
private $status = 0; //0 is in active
$private $password;
public function __construct($id = false, $table = null, $ds = null) {
parent::__construct($id, $table, $ds);
$this->created = date("Y-m-d H:i:s");
$this->setPassword($password);
}
public function setPassword($value){
$this->password = mysecret_algorithm(standard_password);
}
..bunch of setter and getter here
}
私は Cakephp を使用していますが、コントローラーでこれを実行したくありません。複数の場所にアイテムを追加する機能があるためです。モデルで実行すると、すべてのコントローラーが $this->Item->save(); を呼び出すだけで済みます。