yii2 - 如何以一种形式保存输入并自动更新另一种形式 table
yii2 - how to save input in one form and automatically update another table
我的病情有时一直困扰着我。我有两个模型 sewalocker
和 loker
,这两个模型是相关的。我在 sewalockers 中有一张表格,需要将储物柜号码填写为 loker_id
。提交表单后,我希望 status
中选定的 loker_id
分配为 'loaned',而不是 loker
table 中的 'available'。我该怎么做?
这是我的 sewaController :
<?php
namespace app\controllers;
use Yii;
use app\models\SewaLocker;
use app\models\sewaSearch;
use app\models\loker;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
class SewaController extends Controller
{
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
];
}
/**
* Lists all SewaLocker models.
* @return mixed
*/
public function actionIndex()
{
$searchModel = new sewaSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
/**
* Displays a single SewaLocker model.
* @param integer $id
* @return mixed
*/
public function actionView($id)
{
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
/**
* Creates a new SewaLocker model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
*/
public function actionCreate()
{
$model = new SewaLocker();
$loker = new loker();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id_sewa]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
在创建中你应该这样做
如果保存了 SewaLocker 模型,您就可以检索正确的 loker 模型并进行更新。
public function actionCreate()
{
$model = new SewaLocker();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$loker = $this->findLokerModel($model->locker_id);
$loker->status ="Loaned not available";
$loker->save();
return $this->redirect(['view', 'id' => $model->id_sewa]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
protected function findLokerModel($id)
{
if (($model = Loker::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
我的病情有时一直困扰着我。我有两个模型 sewalocker
和 loker
,这两个模型是相关的。我在 sewalockers 中有一张表格,需要将储物柜号码填写为 loker_id
。提交表单后,我希望 status
中选定的 loker_id
分配为 'loaned',而不是 loker
table 中的 'available'。我该怎么做?
这是我的 sewaController :
<?php
namespace app\controllers;
use Yii;
use app\models\SewaLocker;
use app\models\sewaSearch;
use app\models\loker;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
class SewaController extends Controller
{
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
];
}
/**
* Lists all SewaLocker models.
* @return mixed
*/
public function actionIndex()
{
$searchModel = new sewaSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
/**
* Displays a single SewaLocker model.
* @param integer $id
* @return mixed
*/
public function actionView($id)
{
return $this->render('view', [
'model' => $this->findModel($id),
]);
}
/**
* Creates a new SewaLocker model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
*/
public function actionCreate()
{
$model = new SewaLocker();
$loker = new loker();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id_sewa]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
在创建中你应该这样做
如果保存了 SewaLocker 模型,您就可以检索正确的 loker 模型并进行更新。
public function actionCreate()
{
$model = new SewaLocker();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
$loker = $this->findLokerModel($model->locker_id);
$loker->status ="Loaned not available";
$loker->save();
return $this->redirect(['view', 'id' => $model->id_sewa]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
protected function findLokerModel($id)
{
if (($model = Loker::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}