так ?
Код: Выделить всё
'imageUpload' => Url::to(['/img/imageupload'])
Код: Выделить всё
'imageUpload' => Url::to(['/img/imageupload'])
/img/image-uploadphpstarter писал(а):не срабатывает actions тоесть до него не доходит.
Код: Выделить всё
'imageUpload' => Url::to(['/img/image-upload','n'=>$userFolder]),
'imageManagerJson' => Url::to(['/img/images-get', 'n'=>$userFolder]),
Код: Выделить всё
public function actions($n)
{
...тест запись в БД...
$url= '/files/'.$n.'/temp/';
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
'image-upload' => [
'class' => 'vova07\imperavi\actions\UploadAction',
'url' => $url, // Directory URL address, where files are stored.
'path' => '@webroot' . $url, // Or absolute path to directory where files are stored.
],
'images-get' => [
'class' => 'vova07\imperavi\actions\GetAction',
'url' => $url,
'path' => '@webroot' . $url,
'type' => '0',
],
];
}
Вот и прочитайте текст ошибки в runtime/logs/app.log.phpstarter писал(а):не срабатывает. в дебагере 500 ошибка вылетает
Код: Выделить всё
Declaration of app\controllers\ImgController::actions() should be compatible with yii\base\Controller::actions()
Перевести пробовали?phpstarter писал(а):Что это может значить ?Код: Выделить всё
Declaration of app\controllers\ImgController::actions() should be compatible with yii\base\Controller::actions()
В ошибке есть что-то про SiteController?phpstarter писал(а):Тоесть надо в папке установленного yii2 в папке backend наверно модифицировать SiteController так чтобы actions были похожи ? других контроллеров у меня там нет. Я правильно понял?
Объявление метода actions в классе app\controllers\ImgController должно быть идентичным методу actions класса yii\base\Controller
phpstarter писал(а):Прошу меня простить за тупость но где находится yii\base\Controller ? У меня папки base нигде нету просто
Код: Выделить всё
vendor\yiisoft\yii2
Код: Выделить всё
$actionMap = $this->actions();
Код: Выделить всё
public function createAction($id)
{
if ($id === '') {
$id = $this->defaultAction;
}
$actionMap = $this->actions($n);
if (isset($actionMap[$id])) {
return Yii::createObject($actionMap[$id], [$id, $this]);
} elseif (preg_match('/^[a-z0-9\\-_]+$/', $id) && strpos($id, '--') === false && trim($id, '-') === $id) {
$methodName = 'action' . str_replace(' ', '', ucwords(implode(' ', explode('-', $id))));
if (method_exists($this, $methodName)) {
$method = new \ReflectionMethod($this, $methodName);
if ($method->isPublic() && $method->getName() === $methodName) {
return new InlineAction($id, $this, $methodName);
}
}
}
return null;
}
Как вариант не передавать значение в actions а брать из функции, которая генерирует путь.phpstarter писал(а):теперь все контроллеры требуют модифицировать ихние экшены по примеру ($n = null). Это нормально ? Весь код я выложил. Другого нет. В чем может быть ошибка ? может не передавать $n в скобках а использовать post внутри экшена ?
Код: Выделить всё
public function getPath() {
$n = Yii::$app->request->get('n'); // если передается методом get
return '/files/'.$n.'/temp/';
}
Код: Выделить всё
public function actions() {
...
'image-upload' => [
'class' => 'vova07\imperavi\actions\UploadAction',
'url' => self::getPath(), // Directory URL address, where files are stored.
'path' => '@webroot' . self::getPath(), // Or absolute path to directory where files are stored.
],
'images-get' => [
'class' => 'vova07\imperavi\actions\GetAction',
'url' => self::getPath(),
'path' => '@webroot' . self::getPath(),
'type' => '0',
],
...
}
Код: Выделить всё
'image-upload' => [
'class' => 'vova07\imperavi\actions\UploadAction',
'url' => '/frontend/web/images/posts',
'path' => '@frontend/web/images/posts',
],
Что бы отключить уникальность имен файлов, в настройках нужно указать:Arni писал(а):Подскажите, у всех виджет переименовывает изображения и файлы, делает такого плана - 583c940fbdec9.png или у меня не правильно что-то настроено? Сохраняю в:Код: Выделить всё
'image-upload' => [ 'class' => 'vova07\imperavi\actions\UploadAction', 'url' => '/frontend/web/images/posts', 'path' => '@frontend/web/images/posts', ],
Код: Выделить всё
'unique' => false,
Спасибо! Не знаете есть ли какая-то настройка, чтобы в файлах с именем на кирилице при сохранении не коверкалось название? Получается Киевстар - акты.xlsxDominus писал(а): Что бы отключить уникальность имен файлов, в настройках нужно указать:По умолчанию там стоит true.Код: Выделить всё
'unique' => false,