2017-05-27 79 views
2

插入重复数据我已经在数据库表表更新/使用多尔康框架

+----+---------+------+-------+ 
| id | title | code | views | 
+----+---------+------+-------+ 
| 1 | Video 1 | abc | 1000 | 
+----+---------+------+-------+ 
| 2 | Video 2 | def | 2000 | 
+----+---------+------+-------+ 
| 3 | Video 3 | ghi | 3000 | 
+----+---------+------+-------+ 

模型Videos.php

<?php 

use Phalcon\Mvc\Model; 

class Videos extends Model { 

    public $id; 
    public $title; 
    public $code; 
    public $views; 

} 

和控制器以下IndexController.php

<?php 

use Phalcon\Mvc\Controller; 

class IndexController extends Controller { 

    public function indexAction(){ 

     $watch = Videos::findFirst(3); 

     // add +1 to video views 
     $watch->views = $watch->views + 1; 

     // update video data 
     $watch->save(); 

     // output video data to view 
     $this->view->watch = $watch; 

    } 

} 

上述代码应在所选视频的视图中添加+1,但始终添加+2。

例如:1000,1002,1004,1006 ...

如果我运行原始的SQL同样的事情发生。 我做错了什么?

更新#1

我激活了SQL查询日志,它是运行在同一时间2个查询,所以得到的值复制,但我不知道为什么会这样。

在这个链接https://forum.phalconphp.com/discussion/274/model-save-create-two-records被建议检查与主,但已经存在,这是id字段的表。因为尔康需要一个.htaccess文件重定向到index.php所有请求

+0

也许移动解决方案的答案? :) –

+1

完成@Nikolay Mihaylov。 –

回答

0

解决这个响应 https://stackoverflow.com/a/35770447/2587280

发生错误。使用谷歌浏览器,默认情况下它会尝试从网站的根目录加载favicon.ico文件,但由于该文件不存在,所以它被定向到了再次加载的index.php

要确定,我将我的style.css文件重命名为不存在的名称。没有应用页面样式,Chrome的检测没有返回404错误,并且在文件响应中是完整的index.php代码。

为了解决这个问题,我加了的RewriteCond,核实该文件不是为favicon.ico

Options -Indexes 

<IfModule mod_rewrite.c> 

    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !favicon.ico 

    RewriteRule ^(.*)$ index.php?_url=$1 [L] 

</IfModule>