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