Browse Source

better handling with exceptions in __toString()

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
a9e71d5565
  1. 2
      framework/yii/web/Response.php
  2. 9
      framework/yii/widgets/ActiveField.php

2
framework/yii/web/Response.php

@ -781,7 +781,7 @@ class Response extends \yii\base\Response
if (is_array($this->content)) {
$this->content = 'array()';
} elseif (is_object($this->content)) {
$this->content = method_exists($this->content, '__toString') ? (string)$this->content : get_class($this->content);
$this->content = method_exists($this->content, '__toString') ? $this->content->__toString() : get_class($this->content);
}
}
}

9
framework/yii/widgets/ActiveField.php

@ -128,7 +128,14 @@ class ActiveField extends Component
*/
public function __toString()
{
return $this->render();
// __toString cannot throw exception
// use trigger_error to bypass this limitation
try {
return $this->render();
} catch (\Exception $e) {
trigger_error($e->getMessage());
return '';
}
}
/**

Loading…
Cancel
Save