Блог на yii2. Проблема с удалением постов

138
20 сентября 2019, 14:30

Сгенерировал CRUD операции через Gii, добавил функционал загрузки картинок к статье. После этого почему-то перестало работать удаление статей.

вот так выглядит удаление

 public function actionDelete($id)
{
    $this->findModel($id)->delete();
    return $this->redirect(['index']);
}

насколько смог понять , не срабатывает findModel() в методе actionDelete(загонял все в if, redirect не проходил). Причину выяснить не смог. вот findModel

protected function findModel($id)
{
    if (($model = Article::findOne($id)) !== null) {
        return $model;
    }
    throw new NotFoundHttpException('The requested page does not exist.');
}

Вот логи:

2019-02-06 22:49:04 [127.0.0.1][-][b1h7sqlc3rrjq5on8tokk5iq5g1p629m][error][yii\web\HttpException:404] exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "uploads/c8792d9548210f5455f395cdc73386f3.png".' in D:\ospanel\OSPanel\domains\localhost\footblog\vendor\yiisoft\yii2\base\Module.php:537
Stack trace:
#0 D:\ospanel\OSPanel\domains\localhost\footblog\vendor\yiisoft\yii2\web\Application.php(103): yii\base\Module->runAction('uploads/c8792d9...', Array)
#1 D:\ospanel\OSPanel\domains\localhost\footblog\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yi
i\web\Request))
#2 D:\ospanel\OSPanel\domains\localhost\footblog\web\index.php(12): yii\base\Application->run()
#3 {main}
Next exception 'yii\web\NotFoundHttpException' with message 'Page not found.' in D:\ospanel\OSPanel\domains\localhost\footblog\vendor\yiisoft\yii2\web\Application.php:115
Stack trace:
#0 D:\ospanel\OSPanel\domains\localhost\footblog\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 D:\ospanel\OSPanel\domains\localhost\footblog\web\index.php(12): yii\base\Application->run()
#2 {main}
2019-02-06 22:49:04 [127.0.0.1][-][b1h7sqlc3rrjq5on8tokk5iq5g1p629m][info][application] $_GET = []
$_POST = []
$_FILES = []
$_COOKIE = [
    'PHPSESSID' => 'b1h7sqlc3rrjq5on8tokk5iq5g1p629m'
    '_csrf' => 'a83c3e44210e8a2e85885e631b6a0ac853ccbcaf0b62a4a21160636938f7ebe8a:2:{i:0;s:5:\"_csrf\";i:1;s:32:\"bUvzAuOr6NyocoDZlb2VFCGF07-HT68H\";}'

Прошу помочь с решением проблемы или подсказать, где искать ошибку.

upd на всякий случай, экшн добавления картинки:

public function actionAddImage($id) 
{
    $model = new ImageUpLoad;
    if(Yii::$app->request->isPost)
    {
        $article = $this->findModel($id);
        $file = UploadedFile::getInstance($model, 'image');
        //$model->uploadFile($file);

        if($article->saveImage($model->uploadFile($file, $article->image)))
        {
            return $this->redirect(['view', 'id'=>$article->id]);
        }
    }
    return $this->render('image', ['model'=>$model]);
}

В базе записи ОСТАЮТСЯ

Answer 1

С этим кодом думаю что все нормально. Проблема мне кажется в самом реквесте. Судя по логам при запросе изображения начинает работать приложение yii2 которое не понимает как ему разобрать запрос на uploads/c8792d9548210f5455f395cdc73386f3.png. Это исправляется настройками веб-сервера (nginx или apache смотря что используется).

А вот на счет удаления нужно дебажить или расставить свои исключения чтобы понять Возможно перед удалением срабатывает триггер на удаление изображения (см. использование EVENT_BEFORE_DELETE в модели) а при удалении картинки может не хватать прав на стороне веб-сервера и тогда евент не сработает и удаление не произойдет. В общем xdebug в помощь.

READ ALSO
Выход из функции во время вычислений C++

Выход из функции во время вычислений C++

Проблема состоит в том, что это решение я нигде не нашёлМне нужно реализовать немедленное завершение функции во время, допустим, проигрывания...

122
Qt: возможен ли неявный connect?

Qt: возможен ли неявный connect?

Мне дали доработать приложение написанное с использованием QtВ приложении есть некий диалог унаследованный от QDialog

154
Сжатие Mat изображения

Сжатие Mat изображения

Всех приветствую

137