2017-01-04 10 views
0

Я делаю приложение для создания штрих-кода в своем приложении, я хочу создать Barang, но в вопросе о промахе я хочу, чтобы сбой пропусков был автоматически заполнен из последнего проскальзывания , что я могу сделать для почини это?Как получить последнюю запись вставки - Yii 2

enter image description here

это мой взгляд

<?php 

use yii\helpers\Html; 
use yii\widgets\ActiveForm; 

/* @var $this yii\web\View */ 
/* @var $model backend\models\Barang */ 
/* @var $form yii\widgets\ActiveForm */ 
?> 

<div class="barang-form"> 

    <?php $form = ActiveForm::begin(); ?> 

    <?= $form->field($model, 'rm_code')->textInput(['maxlength' => true]) ?> 

    <?= $form->field($model, 'nama_barang')->textInput(['maxlength' => true]) ?> 

    <?= $form->field($model, 'berat')->textInput(['maxlength' => true]) ?> 



    <?= $form->field($model, 'issue_slip')->textInput(['maxlength' => true]) ?> 

    <div class="form-group"> 
     <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> 
    </div> 

    <?php ActiveForm::end(); ?> 

</div> 

<div class="row"> 
    <?= $form->field($model, 'berat')->textInput(['maxlength' => true]) ?> 
    <?php echo \Yii::$app->db->getLastInsertId('{{barang}}');?> 

    </div> 
+0

Оба являются одинаковыми атрибутами модели? –

+0

@ YasarArafath да, это то же самое, что я могу сделать? –

ответ

2

В контроллере перед визуализацией

public function actionCreate() 
{ 
    $model = new Barang(); 
    $modelForSlip = Barang::find()->orderBy(['id'=> SORT_DESC])->one(); 
    $model->issue_slip = $modelForSlip->issue_slip; 

    if ($model->load(Yii::$app->request->post())){ 

     $model->waktu = date('Y-m-d h:m:s'); 
     $model->user = \Yii::$app->user->identity->username; 
     $model->save(); 

     return $this->redirect(['view', 'id' => $model->id]); 
    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
     //$model->issue_slip= \Yii::$app->db->getLastInsertId(); 
    } 
} 
+0

Правильно? http://pastebin.com/LeyNh7LM i не чувствую никакого эффекта –

+0

см. ответ –

+0

i get blankspace –

0

Пусть говорят, что это ваша функция создания:

public function actionCreate() 
    { 
     $model = new Modal(); 

     if ($model->load(Yii::$app->request->post()) && $model->save()) { 
      return $this->redirect(['update', 'id' => $model->Id]); 
     } else { 
      return $this->render('create', [ 
       'model' => $model, 
      ]); 
     } 
    } 

п перенаправление на новую страницу с последним вставлено ID Теперь сделайте обновить функцию как этот

public function actionUpdate($id) 
     { 
      $model2 = Model::findOne($id); 
      $model = new Modal(); 
$model->issue_slip = $model2['issue_slip']; 




      if ($model->load(Yii::$app->request->post()) && $model->save()) { 
       return $this->redirect(['view', 'id' => $model->Id]); 
      } else { 
       return $this->render('update', [ 
        'model' => $model, 
       ]); 
      } 
     } 

В YII2 вы можете получить последнюю вставленную запись после save() функции легко

как

$model->save(); 
echo $model->Id 

или что-то колонку, которую вы хотите получить вместо issue_slip, вы можете использовать любой столбец, который вы хотите

+0

Я ничего не получаю –

+0

, когда вы сохраняете какую-либо модель, то сразу после вызова функции сохранения вы можете получить что-либо из последних данных сохранения, например '$ model-> save(); echo $ model-> Id ' или любое имя столбца из db, которое вы хотите использовать , а вместо' echo' вы можете передать это любой функции, или вы можете использовать любой способ –

+0

просто после каждого создания новой записи вы можете перенаправить его на страницу «update», а затем использовать последние вставленные данные, как вы хотите , пожалуйста, снова проверьте мой ответ –