Есть стандартные модели User, Profile, SignupForm.
Связи между моделями User и Profile есть.
Код: Выделить всё
class SignupForm extends Model
{
public $name;
public $email;
public $username;
public $password;
public $confirmPassword;
/**
* @inheritdoc
*/
public function rules()
{
return [
//User
[['name', 'email', 'username', 'password', 'confirmPassword'], 'required'],
[['username', 'password', 'confirmPassword', 'name', 'email'], 'string', 'max' => 100],
[['username', 'name'],'trim'],
['username', 'unique', 'targetClass' => User::className()],
['confirmPassword', 'compare', 'compareAttribute' => 'password'],
['email','email'],
];
}
public function signup()
{
if ($this->validate()){
$user = new User();
$profile = new Profile();
$user->username = $this->username;
$user->email = $this->email;
$user->setPassword($this->password);
$user->generateAuthKey();
$profile->user_id = ????
$profile->name = $this->name;
return ($user->save() && $profile->save()) ? true : false;
}
}
}
Например: link('user', $user);
Написано что он делает тоже самое что и:
$profile->user_id = $user->id;
$profile->save();
Линком сохраняется user_id, а т.к. выше, нет. Откуда link() знает какой id у пользователя? Что за магия?
Откуда взять id добавляемого пользователя?