[英]Yii2 - How I can set behavior afterFind()
模型:
....
public $yourWay;
....
public function afterFind(){
parent::afterFind();
// echo $this->yourWay (Nothing display)
//something like:
switch($this->yourWay){
//Do something
case "abc": break;
//Do something
case "cde": break;
}
}
控制器:
$model = new Model();
$model->yourWay = 'oneway';
$dt = $model::find()->one();
我嘗試使用$model->scenario = "abc"
並echo $this->scenario
,但是它不起作用。
我是新的Yii2,希望有人能幫助我...
afterFind()
中的$model
不是您正在調用find()
的$model
。 它是僅由數據庫數據填充的新對象。 您必須使用靜態變量將任何內容傳遞給afterFind()
。 請記住靜態變量的性質,並在完成搜索后將其設置為null,以免影響以后的搜索。
模型:
...
public static $yourWay;
...
public function afterFind(){
parent::afterFind();
switch(self::$yourWay){
case "abc":
break;
case "cde":
break;
}
}
控制器:
$model = new Model();
$model::$yourWay = 'oneway';
$dt = $model::find()->one();
$model::$yourWay = null;
您的開關似乎不對,您應該
switch($this->yourWay){
case "abc":
//Do something
....
break;
case "cde":
//Do something
.....
break;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.