HTML代码:
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default">
<span class="glyphicon glyphicon-ok"></span>
<input type="checkbox" value="Wiring" name="type_of_service_requires" autocomplete="off">Wiring
</label>
<label class="btn btn-default electric-ppoints">
<span class="glyphicon glyphicon-ok"></span>
<input type="checkbox" value="Powerpoints" name="type_of_service_requires" autocomplete="off" checked> Powerpoints
</label>
尽快 接下来的几天 住宅 广告
以上行显示HTML代码的输出。
控制器代码:
public function actionGetQuotes()
{
$model = new GetQuotesForm();
if ($model->load(Yii::$app->request-> post()))
{
$model= array_key_exists('type_of_service_requires', $_POST)? $_POST['type_of_service_requires']:"";
$model= array_key_exists('residential_commercial', $_POST)? $_POST['residential_commercial']:"";
$model= array_key_exists('work_start_when', $_POST)? $_POST['work_start_when']:"";
if ($model->save(false))
{
Yii::$app->getSession()->setFlash('success', 'New Info Was Saved.');
}
}
return $this->render('get-quotes',['model' => $model,]);
}
它显示: PHP致命错误 - yii \ base \ ErrorException
在非对象上调用成员函数save()
有人可以帮忙解决这个问题吗?
答案 0 :(得分:1)
这个问题正在发生在下面的线 -
$model->type_of_service_requires = $_POST['type_of_service_requires'];
$model->residential_commercial = $_POST['residential_commercial'];
$model->work_start_when = $_POST['work_start_when'];
评论所有3行并尝试再次提交表单。它应该没有错误。
如果您想保存提交的值超过3行,请以下面的格式修改它们 -
if(isset( $_POST['type_of_service_requires'] ))
$model->type_of_service_requires = $_POST['type_of_service_requires'];
if(isset( $_POST['residential_commercial'] ))
$model->residential_commercial = $_POST['residential_commercial'];
if(isset( $_POST['work_start_when'] ))
$model->work_start_when = $_POST['work_start_when'];
现在,模型 - &gt;保存(false)将在表单提交后起作用。但是如果表单提交包含三个属性中任何一个的任何空值,那么它将显示错误。
要解决此问题,您可以使用以下方式处理所有三个属性 -
public static void main(String[] args) {
String input = "3\n" +
"1 2 3\n" +
"3 4 5\n" +
"6 9 3\n";
Scanner scanner = new Scanner(input);
int rows = scanner.nextInt();
scanner.nextLine();
int[][] arr = new int[rows][];
for (int i = 0; i < rows; ++i) {
String line = scanner.nextLine();
arr[i] = lineToIntArray(line);
}
}
private int[] lineToIntArray(String line) {
String[] cols = line.split(" ");
int[] ints = new int[cols.length];
for (int i = 0; i < cols.length; ++i) {
ints[i] = Integer.parseInt(cols[i]);
}
return ints;
}
如果解决方案不起作用,请添加评论。在评论中添加错误详细信息。