我不知道错误但我无法插入数据库。
这就是我在模型中得到的。
warranty.php
<?php
namespace app\models;
use Yii;
use yii\db\ActiveRecord;
use yii\behaviors\TimestampBehavior;
use yii\db\Expression;
use yii\helpers\VarDumper;
/**
* This is the model class for table "warrantytwo".
*
* @property integer $id
* @property string $item_no
* @property string $warranty_date
* @property string $date
* @property integer $created_by
* @property string $tstamp
*/
class Warrantytwo extends ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'warrantytwo';
}
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'tstamp',
'updatedAtAttribute' => false,
'value' => new Expression('NOW()'),
],
];
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['item_no', 'warranty_date'], 'required'],
[['warranty_date', 'date'], 'string'],
['created_by', 'default', 'value' => 'none'],
[['created_by'], 'integer'],
[['warranty_date', 'date','tstamp'], 'safe'],
[['item_no'], 'string', 'max' => 100]
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'item_no' => 'Item No.',
'warranty_date' => 'Warranty Date',
'date' => 'Date',
'created_by' => 'Created By',
'tstamp' => 'tstamp',
];
}
public function addWarrantytwo()
{
if ($this->validate()) {
$Warrantytwo = new Warrantytwo();
$Warrantytwo->item_no = $this->item_no;
$Warrantytwo->warranty_date = $this->warranty_date;
$Warrantytwo->created_by = 'admin1';
$Warrantytwo->date = date('Y-m-d H:i:s');
//$Warrantytwo->touch('tstamp');
if ($Warrantytwo->save())
{
return $Warrantytwo;
}else {
VarDumper::dump($Warrantytwo->getErrors());
}
}
//return null;
}
}
Controller.php这样
public function actionWarranty()
{
//$model= new WarrantyDate();
$model= new Warrantytwo();
if ($model->load(Yii::$app->request->post()) && $model->addWarrantytwo()) {
return $this->redirect(['warranty']);
}
else {
return $this->render('warranty', [
'model' => $model,
]);
}
}
以我的观点/表格
<?php $form = ActiveForm::begin([
'id' => 'new-warranty-form',
//'options' => ['class' => 'form-horizontal'], //for yii\ActiveForm
'type' => ActiveForm::TYPE_HORIZONTAL, //for krajee\ActiveForm
'formConfig' => ['labelSpan' => 4, 'deviceSize' => ActiveForm::SIZE_SMALL] ]); ?>
<div class="form-horizontal">
<?= $form->field($model, 'item_no',
['addon' => ['append' => ['content'=> '<a href="#w" onClick="sample()"><i class="glyphicon glyphicon-search"></i></a>']] ]); ?>
<?= $form->field($model, 'warranty_date')-> widget(DatePicker::classname(),
[
'options' => ['placeholder' => 'Date Claimed'],
'pluginOptions' => [ 'autoclose'=>true ]
]); ?>
</div>
<div class="col-sm-offset-5 col-md-9">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'warranty-button']) ?>
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']); ?>
</div>
<?php ActiveForm::end(); ?>
它没有给出任何错误但是当我在数据库上检查它时,没有添加任何内容。我希望有人能帮助我。谢谢。我是YII2的新手,所以我仍然没有得到它。
答案 0 :(得分:2)
由于您必须以这种方式确定问题在什么情况下发生。 (有时它会产生一些混乱,因为validate()总是返回一些东西)
public function addWarrantytwo()
{
if ($this->validate()) {
$Warrantytwo = new Warrantytwo();
$Warrantytwo->item_no = $this->item_no;
$Warrantytwo->warranty_date = $this->warranty_date;
$Warrantytwo->created_by = 'admin1';
$Warrantytwo->date = date('Y-m-d H:i:s');
//$Warrantytwo->touch('tstamp');
if ($Warrantytwo->save(false)) // try save without validation
{
return $Warrantytwo;
}else {
VarDumper::dump($Warrantytwo->getErrors());
exit;
}
}
else {
VarDumper::dump($this->validate()); // check for the correct flow
exit;
}
//return null;
}