首页 > 解决方案 > 为什么 Yii2 想象给 Class 'common\models\Box' not found 错误

问题描述

我是 Yii 框架的新手,我正在通过一个简单的项目来学习这一点。在这个项目中,我使用了名为 yiisoft/yii2-imagine 的扩展来降低图像的分辨率,但这给了我未知的错误。

我调整图像大小的代码:

use yii\imagine\Image;

Image::getImagine()
      ->open($thumbnail_path.'/'.$this->video_id.'.jpg')
      ->thumbnail(new Box(500,500))
      ->save();

错误

Class 'common\models\Box' not found

我该如何解决这个错误?

标签: yii2

解决方案


看起来您忘记指定应该使用哪个 Box 类。默认情况下,phpBox在您当前的命名空间中寻找类,因此它正在寻找common\models\Box. 我猜您正在尝试使用 Imagine 的Imagine\Image\Box类,因此您需要添加这样的 use 语句:

use Imagine\Image\Box;

另一种选择是在代码中使用完全限定的类名:

use yii\imagine\Image;

Image::getImagine()
      ->open($thumbnail_path.'/'.$this->video_id.'.jpg')
      ->thumbnail(new \Imagine\Image\Box(500,500))
      ->save();

推荐阅读