我想更新我的extension String {
func isValidBitcoinAddress() -> Bool {
let addressComponents = self.components(separatedBy: ":")
guard addressComponents.count == 2,
addressComponents[0] == "bitcoin" else {
return false
}
let address = addressComponents[1]
let pattern = "^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$"
let range = address.range(of: pattern, options: .regularExpression)
return range == address.indices
}
}
。情景是,我有一个“状态”。列,我想table/model
此列为值,然后根据SET
更新模型。我想做id
语句之类的事情。
update
我的Update 'table' SET status = 'status value' where id = 'myid'
看起来像
action controller
我已经搜索过但无法找到解决方案
任何帮助都将受到高度赞赏
答案 0 :(得分:2)
试试这个,
$model =Table::find($id);
$model->status = 'Active';
$model->save();
也可以使用Create命令直接使用如下:
Yii::$app->db->createCommand("UPDATE table SET status=:status WHERE id=:id")
->bindValue(':id', your_id)
->execute();
答案 1 :(得分:2)
用于检索$ id相关模型 如果id是主键,则可以使用findOne($ id)
$model =YourModel::findOne($id);
$model->status = 'Active';
$model->save();
或find() - > Where() - >一般情况下为one()
$model =YourModel::find()-where(['id'=>$id])->one();
$model->status = 'Active';
$model->save();
如果您的验证规则失败,您可以尝试使用$model->save(false);
如果在这种情况下e行更新,则表示您的某些数据不符合验证规则..并且您应该检查此
答案 2 :(得分:1)
这对我有用
我添加了一个功能
protected function findModel($id)
{
if (($model = Ogpheader::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
然后在控制器内访问它
$model = $this->findModel($id);
$ogp_id = $model->id;
然后在保存我的模型时,我做了以下
if($m->save())
{
$model->status = Ogpheader::$status_titles[1];
$model->update();
//my other code
}
这已更新我的表并根据需要设置列