Почему возникают ошибки с валидацией при редиректе?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Sergalas
Сообщения: 626
Зарегистрирован: 2015.10.15, 12:39

Почему возникают ошибки с валидацией при редиректе?

Сообщение Sergalas »

вот контролер

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

class CartController extends Controller
{
    
    public function actionIndex()
    {
       
        $order= new Orders();
        if(Yii::$app->request->post()){
            $post= $order->saveBasket(Yii::$app->request->post('id'));
            return $this->redirect(['order','id'=>$post]);
        }
        return $this->render('index',[
            'sesGoods'  =>  $sesGoods,
            'userGoods' =>  $userGoods,
            'order'     =>  $order,
        ]);
    }
    public function actionOrder($id){
        $order= new Orders();
        if(isset(Yii::$app->user->id)){
            $order->user_id=Yii::$app->user->id;
            $user=User::findOne(['id'=>Yii::$app->user->id]);
        }else{
             $user = new Anonim(['scenario' => Anonim::SCENARIO_REQUIRE]);
        }
if($order->save()){
            return $this->render('order',[
                'user'=>$user,
                'messege'=> 'yes',
                'operation_id'=>$id,
                'orderid'=>$order->id
            ]);

        }else{
            return
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Почему возникают ошибки с валидацией при редиректе?

Сообщение zelenin »

а что, код в тег code не вставляется? или недавно на форуме и не в курсе, что оно существует?
caHek2x
Сообщения: 1243
Зарегистрирован: 2016.04.12, 20:41

Re: Почему возникают ошибки с валидацией при редиректе?

Сообщение caHek2x »

какие ошибки возникают ?
где возникают ?
гы if(isset(Yii::$app->user->id)) а может if (!Yii::$app->user->isGuest)

эм ... вы создали модель:
$order= new Orders();
дальше если авторизованный пользователь ты вы в модель присваиваете его ид
$order->user_id=Yii::$app->user->id;
а если не авторизован то ничего не присваиваете ... и дальше вы пытаетесь сохранить
if($order->save()){
и только если эта пустая модель сохранится тогда только форму рендерите ...
мне кажется тут чего не хватает ... или модель действительно пустая, тогда в чем её суть ?) или там все по дефолту ?)

---- upd ----
$user=User::findOne(['id'=>Yii::$app->user->id]);
что это ?)
да я тоже ленюсь иногда документацию читать ... но не до такой же степени ...
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Почему возникают ошибки с валидацией при редиректе?

Сообщение vitovt »

Так не очень хорошо делать

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

if($order->save()){
return $this->render('order',[
'user'=>$user,
'messege'=> 'yes',
'operation_id'=>$id,
'orderid'=>$order->id
]);
Если код сработает, то при повторном нажатии на F5 он снова сработает и в базе будет дубль.
Ответить