2017-08-29 61 views
0

我想在yii2控制器中创建简单的单身人士。也许我误解了这种模式,但我决定尝试。所以我有一个CRUD。当我在db中获得该类的一个实例并决定更新它时,$instance变量为空(空)。是否是因为在创建实例后重新加载页面,这就是为什么我的静态变量再次设置为空的原因?是甚至有可能使这样或我真的,真的在错误的方式吗?先谢谢你!Yii2创建简单的单身人士

<?php 

namespace backend\controllers; 

use backend\models\DeliveryTime; 
use yii\data\ActiveDataProvider; 
use Yii; 

class DeliveryTimeController extends \yii\web\Controller 
{ 

    public static $instance = null; 

    public function actionIndex() 
    { 
     $delivery = new ActiveDataProvider([ 
      'query' => DeliveryTime::find()->where('id>0') 
     ]); 
     return $this->render('index', ['delivery' => $delivery]); 
    } 

    public static function setInstance() 
    { 
     if(self::$instance == null){ 
      self::$instance = new DeliveryTime(); 
     } 
     return self::$instance; 
    } 

    public static function getInstance(){ 
     return self::$instance; 
    } 

    public function actionCreate() 
    { 
     $delivery = DeliveryTimeController::setInstance(); 

     if($delivery->load(Yii::$app->request->post()) && $delivery->save()){ 
      self::$instance = $delivery; 
      return $this->redirect(['index']); 
     } 

     return $this->render('create', ['model' => $delivery]); 
    } 

    public function actionUpdate() 
    { 
     $delivery = DeliveryTimeController::getInstance(); 

     if($delivery->load(Yii::$app->request->post()) && $delivery->save()){ 
      return $this->render(['index']); 
     } 
     return $this->render('update', ['model' => $delivery]); 
    } 

    public function actionDelete(){ 
     $delivery = DeliveryTimeController::getInstance(); 
     if($delivery != null){ 
      $delivery->delete(); 
      return $this->redirect(['index']); 
     } 
    } 

} 

回答