如何在两个模型之间传递数据。
我有一个名为 Search and Activity 的模型。
在搜索中发生逻辑之后,我需要将一个值存储在会话中,当我通过活动模型访问会话时,我应该在会话中获取该存储值。
$activities = Activity::model()->findAll($criteria);
foreach ($activities as $val)
$matchingActs[] = $val->id;
我通过以下方式添加它(创建会话)搜索模型
Yii::app()->session['ActivitiesId'] = $matchingActs;
在Activity中使用它如下..
print_r(Yii::app()->session['ActivitiesId']); exit();
这不起作用,我在想天气我应该使用 getState 和 setState。
与两个模型数据传递混淆
输出如下..
Array ( [0] => 2 [1] => 9 [2] => 3 [3] => 16 [4] => 8 [5] => 5 [6] => 4 [7] => 11 [8] => 1 [9] => 10 [10] => 13 [11] => 15 [12] => 14 [13] => 7 [14] => 17 [15] => 18 [16] => 12 [17] => 6 [18] => 19 [19] => 24 [20] => 25 )
但实际上只插入这个数组..但上面的其他东西只会出现。
Array ( [0] => 24 [1] => 25 ) // $matchingActs
编辑 1
使用了 setState 和 getState 但它的输出仍然相同。我很困惑为什么 yii 的这种奇怪行为
var_dump 结果在SEARCH模型内如下。 // var_dump($matchingActs);
array (size=2)
0 => string '24' (length=2)
1 => string '25' (length=2)
//Yii::app()->user->setState('globalunit',$matchingActs);
array (size=2) // var_dump(Yii::app()->user->getState('globalunit'));
0 => string '24' (length=2)
1 => string '25' (length=2)
现在在Activity中,如果我也这样做, // var_dump(Yii::app()->user->getState('globalunit'));
array (size=21)
0 => string '2' (length=1)
1 => string '9' (length=1)
2 => string '3' (length=1)
3 => string '16' (length=2)
4 => string '8' (length=1)
5 => string '5' (length=1)
6 => string '4' (length=1)
7 => string '11' (length=2)
8 => string '1' (length=1)
9 => string '10' (length=2)
10 => string '13' (length=2)
11 => string '15' (length=2)
12 => string '14' (length=2)
13 => string '7' (length=1)
14 => string '17' (length=2)
15 => string '18' (length=2)
16 => string '12' (length=2)
17 => string '6' (length=1)
18 => string '19' (length=2)
19 => string '24' (length=2)
20 => string '25' (length=2)