Yii: Dapatkan data yang dikirimkan pengguna dalam urutan DESC

Saya tahu. Dalam proyek saya, pengguna memiliki hak istimewa untuk menulis cerita di mana pengguna menulis judul dan cerita dan mengirimkannya. Ceritanya diposting di halaman tetapi cerita terbaru (yang ditulis pengguna) ada di bagian bawah, saya ingin setiap kali sebuah cerita ditulis, cerita itu muncul di atas, maksud saya cerita muncul dalam urutan DESC. Inilah yang telah saya lakukan di view file dan story controller create function saya. Ini adalah kode untuk file tampilan saya

<?php $form=$this->beginWidget('bootstrap.widgets.BsActiveForm', array(
'id'=>'story-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,
)); ?>

<div class="content">
<div class="banner">
<img src="<?php echo Yii::app()->request->baseurl;?>/img/story-banner.jpg" class="img-responsive">
</div><!--banner ending here--><br>
<div class="story-content">


<div class="row" >
<div class="col-md-8 col-md-offset-2 vol-stories" style="background-color: #CCFFCC; padding:10px 10px 10px 10px;">
<div class="media">
<div class="media-left">
<a href="/iduser-profile.php">
<?php 
foreach($allmodels as $model)
{
?>
<img class="media-object" src="<?php echo Yii::app()->request->baseurl;?>/img/<?php //echo $model->Profile->picture;?>">
</a>
</div>
<div class="media-body"><strong><?php echo $model->user->username?></strong> <!--username will come here-->

<h4 class="media-heading"><strong><br><?php echo $model->title?></strong></h4>
<p style="color:black; font-family: sans-serif; font-size: 15px"><?php echo $model->story?> <hr style="border-color: #666666"></p>
<?php
}
?>
</div>

</div><!--Media ending here--> 
</div>
</div><!--row ending here--><br>
<?php $this->endWidget(); ?>
<hr>

<div class="write-story" style="background-color: #80B098;">


<form action="<?php echo Yii::app()->request->baseUrl;?>/story/create" method="POST">
    <br>
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
<?php echo $form->textFieldControlGroup($model,'title',array('maxlength'=>100)); ?>
<?php echo $form->textFieldControlGroup($model,'story',array('maxlength'=>1000)); ?>
    <?php echo BsHtml::submitButton('Submit', array('color' => BsHtml::BUTTON_COLOR_PRIMARY)); ?>

        </div>
    </div>
    <br>
</form>

</div><!--row ending here-->
<br>
</div><!--write-story ending here-->
<br>


</div><!--content ending here-->


</div><!--container ending here-->

Dan ini adalah kode untuk storycontroller saya

<?php

class StoryController extends RController
{
    /**
    * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
    * using two-column layout. See 'protected/views/layouts/column2.php'.
    */
    public $layout='//layouts/admin';

    /**
    * @return array action filters
    */
    public function filters()
    {
        return array(
//          'accessControl', // perform access control for CRUD operations
//          'postOnly + delete', // we only allow deletion via POST request
                    'rights',
        );
    }

    /**
    * Specifies the access control rules.
    * This method is used by the 'accessControl' filter.
    * @return array access control rules
    */
    public function accessRules()
    {
        return array(
            array('allow',  // allow all users to perform 'index' and 'view' actions
                'actions'=>array('index','view'),
                'users'=>array('*'),
            ),
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions'=>array('create','update'),
                'users'=>array('@'),
            ),
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions'=>array('admin','delete'),
                'users'=>array('admin'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }

    /**
    * Displays a particular model.
    * @param integer $id the ID of the model to be displayed
    */
    public function actionView($id)
    {
        $this->render('view',array(
            'model'=>$this->loadModel($id),
        ));
    }
//public function actionAllstory() //This has been added to view all the stories on the  stories page
//  {
//               $this->layout='main';
//      $this->render('allstory');// yeh wala tariqa mujhay pogo ne bataya tha
//  }
        public function actionAllstory() //This has been added to view all the stories on the  stories page
{

     $allmodels =  story::model()->findAll();
     $this->layout='main';
     $this->render('allstory', array('allmodels' => $allmodels));
}


    /**
    * Creates a new model.
    * If creation is successful, the browser will be redirected to the 'view' page.
    */
    public function actionCreate()
    {
        $model=new Story;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if(isset($_POST['Story']))
        {
            $model->attributes=$_POST['Story'];

                        $model->user_id=Yii::app()->user->id;//This will get the id of the logged in user..!!

            if($model->save())
                $this->redirect(Yii::app()->createUrl('story/allstory'));// Seen from stackoverflow so becuse it was not going to the correct url
        }

        $this->render('create',array(
        'model'=>$model,
        ));
    }

    /**
    * Updates a particular model.
    * If update is successful, the browser will be redirected to the 'view' page.
    * @param integer $id the ID of the model to be updated
    */
    public function actionUpdate($id)
    {
        $model=$this->loadModel($id);

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if(isset($_POST['Story']))
        {
            $model->attributes=$_POST['Story'];
            if($model->save())
                $this->redirect(array('view','id'=>$model->id));
        }

        $this->render('update',array(
            'model'=>$model,
        ));
    }

    /**
    * Deletes a particular model.
    * If deletion is successful, the browser will be redirected to the 'admin' page.
    * @param integer $id the ID of the model to be deleted
    */
    public function actionDelete($id)
    {
        if(Yii::app()->request->isPostRequest)
        {
            // we only allow deletion via POST request
            $this->loadModel($id)->delete();

            // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
            if(!isset($_GET['ajax']))
                $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
        }
        else
            throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
    }

    /**
    * Lists all models.
    */
    public function actionIndex()
    {
        $dataProvider=new CActiveDataProvider('Story');
        $this->render('index',array(
            'dataProvider'=>$dataProvider,
        ));
    }

    /**
    * Manages all models.
    */
    public function actionAdmin()
    {
        $model=new Story('search');
        $model->unsetAttributes();  // clear any default values
        if(isset($_GET['Story']))
            $model->attributes=$_GET['Story'];

        $this->render('admin',array(
            'model'=>$model,
        ));
    }

    /**
    * Returns the data model based on the primary key given in the GET variable.
    * If the data model is not found, an HTTP exception will be raised.
    * @param integer $id the ID of the model to be loaded
    * @return Story the loaded model
    * @throws CHttpException
    */
    public function loadModel($id)
    {
        $model=Story::model()->findByPk($id);
        if($model===null)
            throw new CHttpException(404,'The requested page does not exist.');
        return $model;
    }

    /**
    * Performs the AJAX validation.
    * @param Story $model the model to be validated
    */
    protected function performAjaxValidation($model)
    {
        if(isset($_POST['ajax']) && $_POST['ajax']==='story-form')
        {
            echo CActiveForm::validate($model);
            Yii::app()->end();
        }
    }
}

person Salik Asad    schedule 07.12.2015    source sumber
comment
Kemungkinan duplikat Yii - findAll dengan pesanan berdasarkan   -  person Criesto    schedule 07.12.2015