小编Jel*_*mer的帖子

Cakephp检查记录是否存在

我想知道,是否有一个函数可以让我立即检查数据库中的记录是否存在?

现在我正在使用以下代码来检测记录是否存在,但我可以想象有一种更简单/更好的方法.

$conditions = array(
    'conditions' => array(
         'User.id' => $this->Session->read('User.id'),
         'User.activation_key' => $this->Session->read('User.key')
     )
);
$result = $this->User->find('first', $conditions);
if (isset($result['User'])){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

是否有类似的东西:

$conditions = array(
    'conditions' => array(
         'User.id' => $this->Session->read('User.id'),
         'User.security_key' => $this->Session->read('User.key')
    )
);
if ($this->User->exists($conditions)){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

好的,是的.它被称为exists(),但我需要相同,但有参数,所以我可以添加自己的条件进行检查.

我搜索过谷歌,但我找不到任何关于此的话题.好吧,很多关于php和mysql,但不是关于cakephp.我需要一个蛋糕特定的答案.

谢谢你的时间 :)

php cakephp

36
推荐指数
1
解决办法
4万
查看次数

在php文件中突出显示js-code

我有一个文件script.js.php.它包含PHPJavaScript代码(js取决于php).它将作为js文件包含在页面中.

<script type="text/javascript" src="script.js.php"></script>
Run Code Online (Sandbox Code Playgroud)

script.js.php的示例

<?php
    require_once 'functions.php'
?>
var vars = {
    var1: 'value1',
    var2: 'value2',
    var2: '<?php echo phpFunction(); ?>'
}
Run Code Online (Sandbox Code Playgroud)

有谁知道,是否有可能PhpStorm在不使用script-tag的情况下在PHP文件中制作高亮的JavaScript代码?

也许有某种伪标签不会影响最终的html/js,但会使PhpStorm hightlight代码"正常",例如

<!-- <section language="javascript">--> 
    js goes here 
<!-- </section> -->
Run Code Online (Sandbox Code Playgroud)

syntax-highlighting phpstorm

9
推荐指数
2
解决办法
4062
查看次数

CakePHP控制器别名

我知道有关于这个主题的其他几个主题,但它们似乎不符合我的需要.

是)我有的

  • example.com/log/
  • LogsController.php

我有LogsController而不是LogController(复数),因为CakePHP希望你有多个控制器.

但正如你可能知道/注意的那样,example.com/log/永远不要使用,LogsController因为网址中缺少's'.

现在,我希望/log/*被重定向到/logs/*.使用以下代码完美地工作:

Router::connect ('/log/*', array('controller'=>'logs'));
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试访问example.com/log/actions/foo/bar它似乎不起作用.所以在一些Googeling之后我发现了这个:

Router::connect ('/log/:action/*', array('controller'=>'logs'));
Run Code Online (Sandbox Code Playgroud)

效果很好.但现在,当我试图再次访问example.com/log/时,它说

错误:找不到LogController.

问题 所以我的问题是,如何为我的网址设置别名,以便/log/使用LogsController而不是尝试使用LogController.

我还有一些控制器,我想改变它,比如flight => FlightsController,profile => ProfilesController.


看看这个问题.它是关于同一主题,但略有不同.它可能会以某种方式帮助你.

php cakephp cakephp-2.2

5
推荐指数
1
解决办法
2856
查看次数

CakePHP在CakePHP 2.2.5控制器中切换数据库连接

我试图从控制器中的两个不同的数据库中获取数据

应用程序/控制器/ UsersController.php

我的数据库连接在database.php中声明

$default = array(
    ...
    'database' => 'test'
    ...
    );
$test = array(
    ...
    'database' => 'test1'
    ...
    );
Run Code Online (Sandbox Code Playgroud)

在我的display()行动中:

public function display() {
    $this->set('defaultUsers', $this->User->find('all'));
    $this->User->schemaName = 'test1';
    $this->User->cacheQueries = false;
    $this->set('testUsers', $this->User->find('all'));
}
Run Code Online (Sandbox Code Playgroud)

这将允许我成功地从两个不同的源获取数据,但问题是这两个数据库必须具有相同的密码,否则它将无法工作.

我尝试过在这里和其他网站找到的其他解决方案.喜欢:

  • 改变$this->User->useDbConfig = 'test',$this->User->cacheQueries = false仍然会给我相同的数据集;

  • 使用ConnectionManager::getDataSource()setConfig(),create(),drop(),setDataSource()那些等没有工作,有的甚至不存在了.

任何帮助将不胜感激!因为我需要为两个类似的应用程序(即两个数据库)使用相同的代码库.

谢谢!

php database cakephp

5
推荐指数
1
解决办法
7328
查看次数

如何通过对话对各个电子邮件进行分组,以便我确定(100%)一封电子邮件与另一封电子邮件在同一个对话中?

在使用Exchange WebServices API时,如何通过对话对各个电子邮件进行分组,以便我确定(100%)一封电子邮件与另一封电子邮件在同一个对话中?

个人意思是:我应该能够一次下载1封电子邮件,因为当发送延迟回复时(比如上个月回复电子邮件),我不想批量下载整个会话再次,但只有一封电子邮件能够将其存储在我自己的数据库中.

上下文

我正在开发一个项目,我需要将所有新鲜的电子邮件放在MySQL数据库中,以便我们可以从CRM应用程序中添加额外的元数据.现在我正在使用基于XML的Exchange WebServices API进行一些原型设计,以便我知道哪些数据可用以及它们是什么样的.我在PHP中这样做(也是我们的CRM内置的语言).

问题

运行简单的XML请求(见下文)时,我会收到来自inbox/sentitems文件夹的一些电子邮件.由于我知道我与同事进行了对话以测试ConversationIndex我发现ConversationIndex似乎不像我预期的那样是一个索引.我希望它在所有电子邮件中都是平等的,这样我就可以轻松地将一个对话组合在一起.

但这似乎不是真的.因为当我将我的收件箱和snetitems(一个对话)的ConversationIndexs放在一起时,我得到以下结果:(--> sentitem, <-- inbox)

  1. - > Ac9IKUBx8yX3vSXYQSWcb8ggCfC7FQ==(first sentitem)
  2. < - Ac9IKUBx8yX3vSXYQSWcb8ggCfC7FQAAAT1A(回复1)
  3. - > Ac9IKUBx8yX3vSXYQSWcb8ggCfC7FQAAAT1AAAAHYQA=(回复2)
  4. < - Ac9IKUBx8yX3vSXYQSWcb8ggCfC7FQAAAT1AAAAHYQAAAAScMA==(回复3)
  5. - > Ac9IKUBx8yX3vSXYQSWcb8ggCfC7FQAAAT1AAAAHYQAAAAScMAAACBsQ(回复4)
  6. < - Ac9IKUBx8yX3vSXYQSWcb8ggCfC7FQAAAT1AAAAHYQAAADX4EA==(回复5)
  7. < - Ac9IKUBx8yX3vSXYQSWcb8ggCfC7FQAAP7ZQ(回复1)

ConversationIndex的其他对话示例: Ac9IB53hRlE85QAKR9qCJ8pbv8gikwAAtByQ

正如您所看到的,每个电子邮件的ConversationIndex更改除了前30个字符.通过查阅这个问题的答案我发现的另一件事是我应该使用BitConverter并修改ConverationIndex,但那是C#.我也找不到这方面的PHP解决方案.

另外,我在EWS文档中找不到关于此主题的任何信息(例如:http://msdn.microsoft.com/en-us/library/ms528174(v = exchg.10).aspx).

可能的选择

References在Exchange服务器的XML响应中看到了一个键,但使用这些InternetMessageId键来确定电子邮件所在的对话将成为一个真正的地狱.

我注意到的另一件事是ConversationId(http://msdn.microsoft.com/en-us/library/ff387041%28v=office.12%29.aspx),但这似乎不是我所寻求的.

XML请求,仅供参考

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
    <soap:Body>
        <FindItem …
Run Code Online (Sandbox Code Playgroud)

php exchangewebservices

4
推荐指数
1
解决办法
817
查看次数

转换开始和结束的持续时间不同?

.box {
  width: 100px;
  height: 100px;
  background: blue;
}

.circle {
  margin-top: 20px;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  background: red;
  opacity: 0;
  transition: opacity 0.5s ease;
 }

.box:hover + .circle {
  opacity: 1;
}
  
Run Code Online (Sandbox Code Playgroud)
<body>
  <div class="box">
  </div>
  <div class="circle">
  </div>
 </body>
Run Code Online (Sandbox Code Playgroud)

在这里,当我将鼠标悬停在 上时.box.circle会在 0.5 秒内淡入。

现在,当我将光标从 移开时.box,我想.circle以不同的速度(例如 1 秒)淡出。如何实现?

css css-transitions css-animations

3
推荐指数
1
解决办法
626
查看次数

结果的var_dump给出null值.但更深入的检查会返回整数

可能重复:
新的Mysqli对象为空

我刚刚开始为我的MVC框架构建我的数据库类.在构建这个时,我正在尝试简单的查询和表格,以使其正常工作.

我试图查询以下内容:

SELECT*FROM mvc_test

这应该返回3行:

1 | 测试

2 | TEST2

3 | TEST3

我使用以下方法来查询:

<?php $this->result = $this->conn->query($this->q); ?>
Run Code Online (Sandbox Code Playgroud)

$ this-> conn的位置是:

<?php 
 $this->conn = new mysqli($this->reg->conf->database['host'],
 $this->reg->conf->database['user'],
 $this->reg->conf->database['password'],
 $this->reg->conf->database['database']);
?>
Run Code Online (Sandbox Code Playgroud)

其中$ this-> reg-> conf-> database包含主机,数据库等的所有值.这有效,我有一个连接.

现在,当我var_dump结果如下:

<?php var_dump($this->result); ?>
Run Code Online (Sandbox Code Playgroud)

我明白了:

对象(mysqli_result)[9]

public'current_field'=> null

public'field_count'=> null

public'length'=> null

public'num_rows'=> null

public'type'=> null

但是,如前所述它应至少包含3行,所以我希望num_rows为'3'.

现在,当我var_dump结果的num_rows时,如下所示:

<?php var_dump($this->result->num_rows); ?>
Run Code Online (Sandbox Code Playgroud)

我得到一个'int 3'作为回应.

结论:在第一个var_dump中它是null,但是通过更深入的检查我得到3.所以它读取3行.当我添加另一行(第4行)时,它会按预期返回4.

我的问题是:为什么var_dump不能正常工作?为什么一开始就说null,但是通过更深入的检查确实有一个值.

在此先感谢,我真的很挣这个,因为我也没有任何错误.

php mysqli

2
推荐指数
1
解决办法
4945
查看次数