Yii实现单用户博客系统文章详情页插入评论表单的方法

本文实例讲述了Yii实现单用户博客系统文章详情页插入评论表单的方法。分享给大家供大家参考,具体如下:

action部分:

<?php
function test($objs)
{
 $objs->var=10;
}
class one
{
 public $var=1;
}
$obj=new one();
echo $obj->var.'<p>';
test($obj);
echo $obj->var;
exit;

PostController.php页面:

...
/**
* Displays a particular model.
* @param integer $id the ID of the model to be displayed
*/
public function actionView($id)
{
  $post=$this->loadModel($id);
  $comment=$this->newComment($post);
  $this->render('view',array(
    'model'=>$post,
    'comment'=>$comment,
  ));
}
protected function newComment($post)
{
  $comment=new Comment();
  if(isset($_POST['Comment']))
  {
   $comment->attributes=$_POST['Comment'];
   if($post->addComment($comment))//==============================
   {
    if($comment->status==Comment::STATUS_PENDING)
     Yii::app()->user->setFlash('commentSubmitted','Thank you...');
    $this->refresh();
   }
  }
  return $comment;
}
...

models/Post.php页面:

...
public function addComment($comment)
{
  if(Yii::app()->params['commentNeedApproval'])
   $comment->status=Comment::STATUS_PENDING;
  else
   $comment->status=Comment::STATUS_APPROVED;
  $comment->post_id=$this->id;
  return $comment->save();
}
...

post/view.php页面:

...
<div id="comments">
<h3>Leave a Comment</h3>
<?php if(Yii::app()->user->hasFlash('commentSubmitted')): ?>
 <div class="flash-success">
 <?php echo Yii::app()->user->getFlash('commentSubmitted'); ?>
 </div>
<?php else: ?>
 <?php $this->renderPartial('/comment/_form',array(
 'model'=>$comment,
 )); ?>
<?php endif; ?>
</div><!-- comments -->
...

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Yii中CGridView实现批量删除的方法

    本文实例讲述了Yii中CGridView实现批量删除的方法.分享给大家供大家参考,具体如下: 1. CGridView中的columns添加 array( 'selectableRows' => 2, 'footer' => '<button type="button" onclick="GetCheckbox();" style="width:76px">批量删除</button>', 'class' =&g

  • 解析yii数据库的增删查改

    1. 存取数据库方法存储第一种存表时候用到例子: 复制代码 代码如下: $post=new Post;$post->title='samplepost';$post->content='content for thesample post';$post->createTime=time();/$post->createTime=newCDbexpression_r('NOW()');$post->save();$user_field_data= new user_field_

  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作. User::find()->all();    //返回所有用户数据: User::findOne($id);   //返回 主键 id=1  的一条数据: User::find()->where(['name' => 'ttt'])->one();   //返回 ['name' => 'ttt'] 的一条数据: User::find(

  • yii2使用GridView实现数据全选及批量删除按钮示例

    整理文档,发现一个用GridView实现数据全选及批量删除按钮示例,稍微整理精简一下做下分享. 先来看实现的效果 关键代码如下: <?= GridView::widget([ 'dataProvider' => $dataProvider, 'showFooter' => true, //设置显示最下面的footer 'id' => 'grid', 'columns' => [ [ 'class'=>CheckboxColumn::className(), 'name'

  • JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享

    效果展示: 代码实现: 控制器 <?php namespace app\controllers; use Yii; use yii\filters\AccessControl; use yii\web\Controller; use yii\filters\VerbFilter; use app\models\LoginForm; use app\models\ContactForm; //use yii\db\ActiveRecord; use yii\data\Pagination; use

  • Yii2 批量插入、更新数据实例

    在使用yii2开发项目时,有时候会遇到这样的情况: 向后台发送多条数据,其中一些数据已经存在记录,只需要对其部分字段的值进行修改;而另一部分的数据则需要新添加进去. 这就需要对添加的数据进行判断,其中一些执行update,剩下的执行insert 代码如下,不对的地方请指教: //批量更新,并将需要批量插入的数据放入数组中 foreach($goods as $k => $v) { if(yourModel::updateAllCounters( ['goods_num' => $v], ['g

  • Yii2如何批量添加数据

    批量添加这个操作,在实际开发中经常用得到,今天小编抽空给大家整理些有关yii2批量添加的问题,感兴趣的朋友一起看看吧. 在上篇文章给大家介绍了关于浅析Yii2 gridview实现批量删除教程,当然,着重点在于怎么去操作gridview了,今儿我们来好好谈谈yii2如何批量添加数据? 有同学嚷嚷了,这还不简单,我foreach一循环,每个循环里面直接把数据插入到数据库,简单粗暴完事!我擦嘞,哥,你要是跟我在一个公司,我觉得第二天见到你的概率可就不大了! 话不多说,说多了你在骂我,我们步入正题,先

  • Yii操作数据库的3种方法

    一.执行原生太SQL的PDO方式. 复制代码 代码如下: $sql = "";//原生态sql语句 xx::model()->dbConnection->createCommand($sql)->execute(); 二.Active Record方式 (1)New 方式 复制代码 代码如下: $post=new Post; $post->title='sample post'; $post->content='post body content'; $p

  • 浅析Yii2 gridview实现批量删除教程

    在朋友圈里有童鞋向我讨论GridView的问题,有朋友说你用gridview给我去掉表头的链接?我想的很久,用gridview确实不容易实现.有不同见解的朋友欢迎留言.但是呢,这根gridview有个毛线关联啊,明明是要设置ActiveDataProvider,你要我怎么用gridview实现嘛. 这个问题也是很简单的,我们来看看具体实现 $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $dataProvider->

  • YII框架批量插入数据的方法

    本文实例讲述了YII框架批量插入数据的方法.分享给大家供大家参考,具体如下: public function insertSeveral($table, $array_columns) { $sql = ''; $params = array(); $i = 0; foreach ($array_columns as $columns) { $names = array(); $placeholders = array(); foreach ($columns as $name => $valu

  • Yii实现MySQL多数据库和读写分离实例分析

    本文实例分析了Yii实现MySQL多数据库和读写分离的方法.分享给大家供大家参考.具体分析如下: Yii Framework是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.Yii提供了今日Web 2.0应用开发所需要的几乎一切功能,也是最强大的框架之一,下文我们来介绍Yii实现MySQL多库和读写分离的方法 前段时间为SNS产品做了架构设计,在程序框架方面做了不少相关的压力测试,最终选定了YiiFramework,至于为什么没选用公司内部的 PHP框架,其实理由很充分,公司的框

  • Yii实现复选框批量操作实例代码

    整理文档,搜刮出一个Yii实现复选框批量操作实例代码,稍微整理精简一下做下分享. 在视图下 <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'user-grid', 'dataProvider'=>$model->search(),//Model里需要有个search()方法,$model是Controller中传递的Model对象 // /'filter'=>$model, 'columns

随机推荐