Ich weiß nicht, was falsch ist, aber ich kann nicht in die Datenbank einfügen.kann nicht in ActiveRecord Yi2 in die Datenbank einfügen
das ist, was ich in dem Modell bekam.
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,
]);
}
}
und in meine Ansichten/form
<?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(); ?>
Es keine Fehler geben, aber wenn ich es auf überprüfen die Datenbank, nichts hinzugefügt. Ich hoffe, dass mir jeder helfen kann. Vielen Dank. Ich bin neu bei YII2, also verstehe ich es immer noch nicht.
Können Sie mir den Wert von 'Garantie_Datum' mitteilen? – GAMITG
@gamitg ich der Wert ist ein Datum, denke ich. Ich habe ein Kartikeldatenpicker-Widget verwendet. Außerdem habe ich meinen Datentyp in mysql in 'text' anstatt in' date' geändert, um sicherzustellen, dass das Datum in dbase addiert werden kann. – BlackSkull
Sie können versuchen, Daten mit '$ Warrantytwo-> save (false)' zu speichern. Es bedeutet, ohne Validierung Daten zu speichern, um das Problem zu finden. – GAMITG