Очередная проблема с redirect()

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Очередная проблема с redirect()

Сообщение orkhanalyshov »

Здравствуйте.

Код такой:

Код: Выделить всё

public function actionSave($id) {
        $userId = Yii::$app->user->id;
        $product = Product::find()->where(['id' => $id])->one();
        
        if ($userId == $product->user_id) {
            $product->status = 1;
            
            if($product->validate()){
                $product->save();
            }
            
        } else echo 'Permission denied!';
        
        return $this->redirect('/post/preview', 301);
    }
Проблема: не срабатывает redirect(), может кто сталкивался с такой проблемой, подскажите, пожалуйста, как решить. Спасибо.
С уважением, Орхан Алышов
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

Re: Очередная проблема с redirect()

Сообщение kukuruku »

а если убрать
echo 'Permission denied!'
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

kukuruku писал(а):а если убрать
echo 'Permission denied!'
Нет, все равно получаю белую страницу, т.е. не срабатывает redirect().
С уважением, Орхан Алышов
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Очередная проблема с redirect()

Сообщение andrei.obuhovski »

А так?
$this->redirect(['post/preview']);
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

andrei.obuhovski писал(а):А так?
$this->redirect(['post/preview']);
Нет :/
С уважением, Орхан Алышов
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Очередная проблема с redirect()

Сообщение andrei.obuhovski »

Код: Выделить всё


public function actionSave($id) 
{
        return $this->redirect(['post/preview']);
}
 
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

andrei.obuhovski писал(а):

Код: Выделить всё


public function actionSave($id) 
{
        return $this->redirect(['post/preview']);
}
Понятно, что в таком случае сработает :)
С уважением, Орхан Алышов
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

Re: Очередная проблема с redirect()

Сообщение kukuruku »

нужно смотреть что в лог пишет
Prosto_Tok
Сообщения: 132
Зарегистрирован: 2015.09.30, 20:12

Re: Очередная проблема с redirect()

Сообщение Prosto_Tok »

$product->validate()
$product->save()
Где-то тут ошибку надо вылавливать.

Были случаи похожие, когда именно эти методы не отрабатывались из-за ошибок.
используйте var_dump() + die() и построчно проверяйте ваш action.
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Очередная проблема с redirect()

Сообщение lynicidn »

$product = Product::find()->where(['id' => $id])->one();

проверяйте что не нулл, или в логах ищите ошибку, что вы вызываете user_id у NULL
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

lynicidn писал(а):$product = Product::find()->where(['id' => $id])->one();

проверяйте что не нулл, или в логах ищите ошибку, что вы вызываете user_id у NULL
Нет, не нулл. Например, $product = Product::find()->where(['id' => $id])->one(); в данном случае возвращает Product c id=54.
С уважением, Орхан Алышов
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

lynicidn писал(а):$product = Product::find()->where(['id' => $id])->one();

проверяйте что не нулл, или в логах ищите ошибку, что вы вызываете user_id у NULL
Вот если здесь вместо этого:

Код: Выделить всё

if($product->validate()){
    $product->save();
}
 
Написать вот это:

Код: Выделить всё

$product->save(false);
 
То redirect() срабатывает.
С уважением, Орхан Алышов
lynicidn
Сообщения: 2222
Зарегистрирован: 2014.05.24, 15:12

Re: Очередная проблема с redirect()

Сообщение lynicidn »

т.е. косяк в валидации, в любом случае логи!!!! или ищите die или exit в валидаторах самопальных
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

lynicidn писал(а):т.е. косяк в валидации, в любом случае логи!!!! или ищите die или exit в валидаторах самопальных
Но модель же валидный
С уважением, Орхан Алышов
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Очередная проблема с redirect()

Сообщение andrei.obuhovski »

кодировку по всему проекту проставьте utf-8 без BOM
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

andrei.obuhovski писал(а):кодировку по всему проекту проставьте utf-8 без BOM
Так и есть, в main.php :

Код: Выделить всё

<meta charset="<?= Yii::$app->charset ?>">
С уважением, Орхан Алышов
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Очередная проблема с redirect()

Сообщение vitalik1183 »

это другое
Yii2!
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

vitalik1183 писал(а):это другое
Какое "это" другое?
С уважением, Орхан Алышов
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Очередная проблема с redirect()

Сообщение vitalik1183 »

кодировка страницы(в meta charset) и кодировка файла никак не относятся друг к другу.
Yii2!
orkhanalyshov
Сообщения: 83
Зарегистрирован: 2015.06.19, 15:56
Контактная информация:

Re: Очередная проблема с redirect()

Сообщение orkhanalyshov »

vitalik1183 писал(а):кодировка страницы(в meta charset) и кодировка файла никак не относятся друг к другу.
Правильно, но файлы тоже с Utf-8(without BOM)
С уважением, Орхан Алышов
Ответить