|
yii relation вызывает shell_exec?
#38730140
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
Участник
Откуда: Москва
Сообщения: 2 987
|
|
Всем привет.
Столкнулся с неприятностью, когда в relation вписываю представление mysql, получаю ошибку безопасности (shell_exec заблокирована в целях безопасности).
Вообще не пойму в чём фигня... ведь так быть не должно (нафига ему консоль то?).
итак... вот модель для представления:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93.
<?php
/**
* This is the model class for table "productType".
*
* The followings are the available columns in table 'productType':
* @property integer $id
* @property integer $type
*/
class ProductType extends CActiveRecord
{
/**
* @return string the associated database table name
*/
public function tableName()
{
return 'productType';
}
/**
* @return array validation rules for model attributes.
*/
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('id, type', 'numerical', 'integerOnly'=>true),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('id, type', 'safe', 'on'=>'search'),
);
}
/**
* @return array relational rules.
*/
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
);
}
/**
* @return array customized attribute labels (name=>label)
*/
public function attributeLabels()
{
return array(
'id' => 'просто id (не используется)',
'type' => 'Type',
);
}
/**
* Retrieves a list of models based on the current search/filter conditions.
*
* Typical usecase:
* - Initialize the model fields with values from filter form.
* - Execute this method to get CActiveDataProvider instance which will filter
* models according to data in model fields.
* - Pass data provider to CGridView, CListView or any similar widget.
*
* @return CActiveDataProvider the data provider that can return the models
* based on the search/filter conditions.
*/
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('type',$this->type);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
/**
* Returns the static model of the specified AR class.
* Please note that you should have this exact method in all your CActiveRecord descendants!
* @param string $className active record class name.
* @return ProductType the static model class
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}
}
Вот модель, в которой я создаю relation:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107.
<?php
/**
* This is the model class for table "price".
*
* The followings are the available columns in table 'price':
* @property integer $id
* @property string $code
* @property string $brend
* @property string $comment
* @property double $price
* @property double $addition
*/
class Price extends CActiveRecord
{
/**
* @return string the associated database table name
*/
public function tableName()
{
return 'price';
}
/**
* @return array validation rules for model attributes.
*/
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('partner, code, brend, comment, price, addition', 'required'),
array('partner, price, addition, active', 'numerical'),
array('code', 'length', 'max'=>250),
array('brend', 'length', 'max'=>60),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('id, code, brend, comment, price, addition', 'safe', 'on'=>'search'),
);
}
/**
* @return array relational rules.
*/
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
"productType"=>array(self::BELONGS_TO, `productType`, `id`)
);
}
/**
* @return array customized attribute labels (name=>label)
*/
public function attributeLabels()
{
return array(
'code' => 'код детали',
'comment' => 'комментарий',
'price' => 'цена(оригинальная)',
'addition' => 'наценка',
);
}
/**
* Retrieves a list of models based on the current search/filter conditions.
*
* Typical usecase:
* - Initialize the model fields with values from filter form.
* - Execute this method to get CActiveDataProvider instance which will filter
* models according to data in model fields.
* - Pass data provider to CGridView, CListView or any similar widget.
*
* @return CActiveDataProvider the data provider that can return the models
* based on the search/filter conditions.
*/
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('code',$this->code,true);
$criteria->compare('brend',$this->brend,true);
$criteria->compare('comment',$this->comment,true);
$criteria->compare('price',$this->price);
$criteria->compare('addition',$this->addition);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
/**
* Returns the static model of the specified AR class.
* Please note that you should have this exact method in all your CActiveRecord descendants!
* @param string $className active record class name.
* @return Price the static model class
*/
public static function model($className=__CLASS__)
{
return parent::model($className);
}
}
Трассировка ошибки указывает на красную строку. Стоит мне закоментить связь productType, и ошибка пропадает...
Может кто знает откуда ноги ростут, или где искать хотя бы... или может кто-то укажет мне на криворукость.
В общем буду благодарен за любые идеи и предположения (проект горит, и такой затык - очень плохо).
Всем спасибо
|
|
|