Tag: cakephp 3.0

如何安全地使用保留的SQL名称?

我使用CakePHP 3使用sqlserver作为数据源服务器。 我相信有没有问题,我的数据库连接..作为home.ctp提示我连接到我的数据库..我也使用迁移插件来创build我的表..似乎有没有问题的工作这些工具。 但是在我烘烤了我的MVC之后,我只有页面充满了错误。 例如$ bin \ cake烘烤所有的testing 我发现没有错误,MVC是在它的特定文件夹,testController.php,testTable等 并在浏览器localhost:8765 \ tests 但我得到的是不同的错误页面。我看到 Error: SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'desc'. SELECT * FROM (SELECT Tests.id AS [Tests__id], Tests.desc AS [Tests__desc], (ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) AS [_cake_page_rownum_] FROM tests Tests) _cake_paging_ WHERE _cake_paging_._cake_page_rownum_ <= :c0 在左边更多的错误。 我认为这是因为控制器错误的查询或查询生成的查询是仅用于mysql。 我只是想知道如何处理这个。 […]

如何限制每个logging/组包含的关联?

我有一个模型,文章,其中有许多摘要。 我想载入最新的10篇文章,并且对于每篇文章,最多的点数都是摘要。 我的function如下所示: public function getArticles($category, $viewName) { $subArticles = $this->Articles->findByCategory($category)->contain([ 'Abstracts' => function ($q) { return $q ->select(['body', 'points', 'article_id']) ->where(['Abstracts.approved' => true]) ->limit(10) ->order(['Abstracts.points' => 'DESC']); } ]) ->limit(10) ->order(['Articles.created' => 'DESC']) ; $this->set( $viewName . 'Articles', $subArticles ); } 我得到的结果不是我想要的。 通过SQL查看,首先CakePHP获取类别(罚款)中的所有items.id。 然后,CakePHP使用刚刚发现的10个articles.id文件进入摘要表,并要求获得最高票数的10个摘要(属于这些文章)。 问题是,我想要1篇摘要,而不是属于该类别的任何文章的10摘要。 我该如何解决这个问题? 谢谢! 编辑 ndmbuild议这是在包含模型上使用limit()的重复,所以我试图在那里的解决scheme。 也就是说,我把这个添加到我的模型中: $this->hasOne('TopAbstract', [ 'className' => […]

如何根据相关模型的条件进行过滤?

我有一个用户和联系人belongsToMany关联。 我想find给定用户的联系人。 我需要类似的东西 $this->Contacts->find()->contain(['Users' => ['Users.id' => 1]]); 这本食谱讲的是赋予条件包含自定义的发现方法和通过关键字唱歌,但我没有find如何把它们放在一起。