Использую yii2, yii2-gallery-manager
Создал контроллер
class GalleryImageController extends \yii\web\Controller
{
public function actions()
{
return [
'galleryApi' => [
'class' => GalleryManagerAction::className(),
// mappings between type names and model classes (should be the same as in behaviour)
'types' => [
'portfolio' => GalleryImage::className()
]
],
];
}
public function actionIndex()
{
$dataProvider = GalleryImage::find()->all();
return $this->render('index', ['model' => $dataProvider[0]]);
}
}
Модель
class GalleryImage extends \yii\db\ActiveRecord
{
public static function tableName()
{
return 'gallery_image';
}
public function rules()
{
return [
[['type', 'ownerId', 'name', 'description'], 'required'],
[['type', 'ownerId', 'name', 'description'], 'string'],
[['rank'], 'integer'],
];
}
public function behaviors()
{
return [
'galleryBehavior' => [
'class' => GalleryBehavior::className(),
'type' => 'portfolio',
'extension' => 'jpg',
'directory' => '/images/gallery',
'url' => '/images/gallery/',
'versions' => [
'small' => function ($img) {
/** @var \Imagine\Image\ImageInterface $img */
return $img
->copy()
->thumbnail(new \Imagine\Image\Box(200, 200));
},
'medium' => function ($img) {
/** @var Imagine\Image\ImageInterface $img */
$dstSize = $img->getSize();
$maxWidth = 800;
if ($dstSize->getWidth() > $maxWidth) {
$dstSize = $dstSize->widen($maxWidth);
}
return $img
->copy()
->resize($dstSize);
},
]
]
];
}
public function attributeLabels()
{
return [
'id' => 'ID',
'type' => 'Type',
'ownerId' => 'Owner ID',
'rank' => 'Rank',
'name' => 'Name',
'description' => 'Description',
];
}
}
Во вьющке вывожу
<div class="row">
<div class="col-xs-12 text-center">
<div class="panel panel-default">
<div class="panel-heading">Галерея "Фото"</div>
<div class="panel-body">
<?php
if ($model->isNewRecord) {
echo 'Can not upload images for new record';
} else {
echo GalleryManager::widget(
[
'model' => $model,
'behaviorName' => 'galleryBehavior',
'apiRoute' => 'portfolio/galleryApi'
]
);
}
?>
</div>
</div>
</div>
</div>
Папка с картинками лежит в папках web и в backend'e и в frontend'e. В БД 1 запись
как быть?
Добавь во view:
foreach ($model->getBehavior('galleryBehavior')->getImages() as $image) {
echo Html::img($image->getUrl('medium'));
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты