1
我有一个简单的模型只有2个参数 - '总和'和'名称'。我创建了这个模型的类的一个新对象,并将它发送到一个视图。鉴于我有两个领域 - 也是'总和'和'名字'。 当我在字段中输入值(fe sum = 10,name = Joe)时,我期望我的当前总和将减少10,但对于用户Joe,它将增加10.(数据库中还有三列 - 'id', 'sum'和'name')。 但我不能从该字段传输此名称来更新数据库。如何使用活动记录字段创建类的对象?
//Controller
public function actionSum()
{
$model = new SumForm();
if ($model->load(Yii::$app->request->post())) {
if ($user = $model->sumfunction()) {
} return $this->goHome();
}
return $this->render('sum', [
'model' => $model,
]);
}
//Model
class SumForm extends Model
{
public $sum;
public $name;
public function attributeLabels()
{
return [
'sum' => 'Sum',
'name' => 'Name',
];
}
public function sumfunction()
{
if ($this->validate()) {
$desc = User::findOne(Yii::$app->user->getId());
$desc->sum -= $this->sum;
$desc->save();
$inc = User::findOne(['name'=>Yii::$app->request->post('name')]);
//here I need to take a row for user which name I input
$inc->sum += $this->sum;
$inc->save();
}
}
//in view 'sum' only two fields and button
谢谢您的回复!但是在这种情况下没有db的更新。 – Jens
对不起,更新了答案... – onmotion
感谢onmotion的帮助。一切都很好。只需要发布($ this-> username)而不是post('username')。 – Jens