2016-04-19 12 views
1

werfen benutzte ich beforeValidate($insert) Funktion und es eine PHP-Warnung ausgelöst, wenn ich meinen Beitrag Aggregationsseite zugreifen: http://localhost/yiiapp/backend/web/index.php?r=post/indexYii2 vor Validate PHP Warnung

PHP Warning – yii\base\ErrorException 
Missing argument 1 for app\models\Post::beforeValidate(), called in /var/www/html/yiiapp/vendor/yiisoft/yii2/base/Model.php on line 341 and defined 

aber wenn ich meine erstellen Seite zugreifen, diese Ausnahme weggegangen: http://localhost/yiiapp/backend/web/index.php?r=post/create

Eigentlich möchte ich Wert eins meines Attributs user_id vor der Validierung in Post-Modell zuweisen.

ist hier Beitrag Modell:

class Post extends \yii\db\ActiveRecord 
{ 
public static function tableName() 
    { 
     return 'post'; 
    } 
public function beforeValidate($insert) 
    { 
     if (parent::beforeValidate($insert)) { 
      $this->user_id = Yii::$app->user->id; 
      return true; 
     } 
     return false; 
    } 
--- 
} 

Warum diese Ausnahme?

Wie kann ich dieses Problem lösen?

Antwort