小编can*_*era的帖子

对于Doctrine ORM,为什么除了PDO之外还需要DBAL?

我已经和Doctrine 2 ORM合作了一段时间,而且我从未完全理解过.

Doctrine DBAL(数据库抽象层)的用途是什么?PDO本身就是一个数据库抽象层,为什么ORM不能直接与PDO一起工作?

我不是想找到一种方法来使用DBAL或任何东西.我只是不明白为什么需要额外的层,似乎无法在文档中找到明确的答案.

orm pdo doctrine-orm

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

如何从事件处理程序引用对象实例

在下面的代码中,有没有handleClick()比从全局实例中引用对象实例更好的方法呢?

var Widget = function() {
  this.property = 'value';
  this.bindEvents();
}

Widget.prototype = {

  bindEvents: function() {
    $('button').on('click', this.handleClick);
  },

  handleClick: function() {
    var self = window.Widget;

    console.log(self.property);
  }
}

window.Widget = new Widget();
Run Code Online (Sandbox Code Playgroud)

这个问题问的是同一件事,(不可接受的)答案是将回调传递给$.on()并从那里调用处理程序,将实例作为参数传递如下:

bindEvents: function() {
  var self = this;

  $('button').on('click', function() {
    self.handleClick.apply(self);
  });
}
Run Code Online (Sandbox Code Playgroud)

这种传递实例的技术真的是正确的方法吗?或者,除了我已经展示的两种方法之外,还有没有其他首选的方法?

javascript jquery

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

React JSX:Cache Props?

props在React/JSX中多次访问相同的值时,建议将对象缓存在局部变量中吗?

var ItemComponent = React.createClass({

  render: function() {

    var cached = this.props.item;

    return (
      <div className={cached.class}>
        <h1>{cached.heading}</h1>
        <p>{cached.text}</p>
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

reactjs react-jsx

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

连接+三元组

在PHP中,有没有办法使用三元条件连接两个字符串?

<?= 'something' . (true) ? 'else' : 'not'; ?>
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我所得到的只是else期望而非something else.

php

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

使用Doctrine2从字符串插入日期

精简版:

有谁知道如何使用Doctrine2进行简单的日期插入?我需要将格式为YYYY-MM-DD('Ym-d')的日期插入MySQL'日期'字段.

如果你已经知道如何做到这一点,你可以跳过下面我到目前为止尝试过的解释.否则,关于我的问题的更多细节将在休息之后.


长版:

我有一个Doctrine2 CRUD应用程序,需要将表单提交日期插入MySQL数据库.

日期使用三个下拉菜单以表格形式提交:年,月和日.

在我的Doctrine存储库方法中,我使用date()将提交的值转换为日期,然后在我的实体类中调用名为setCreated()的方法:

$string = $values['year'] . '-' . $values['month'] . '-' . $values['day'];
$date = date('Y-m-d', strtotime($string));
$item->setCreated($date);
Run Code Online (Sandbox Code Playgroud)

然后在setCreated()中,首先我尝试传递这样的日期:

public function setCreated($date) {
    $this->created = $date;
}
Run Code Online (Sandbox Code Playgroud)

但是,这给了我这个错误信息:"调用一个成员函数的格式()在...学说\ DBAL \类型\ DateType.php一个非对象".

接下来我尝试改变这样的setter:

public function setCreated($date) {
    $this->published = new \Doctrine\DBAL\Types\DateType($date);
}
Run Code Online (Sandbox Code Playgroud)

但这也不起作用:"调用私有Doctrine\DBAL\Types\Type :: __ construct()......"

最后我尝试创建一个简单的Date对象来插入:

public function setCreated($date) {
    $this->created = new \Date($date);
}
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:在Path\To\Entity\Item.php中找不到"类'日期'......"

我也尝试了上面的版本没有Date的反斜杠,这给了我这个错误:"警告:require(Path\Entity\Date.php)无法打开流.在Path\Doctrine\Common\ClassLoader中没有这样的文件或目录.PHP ......"

(为了确认,我的包含路径在php.ini中正确配置 - 特别是include_path \php\PEAR,这是Date.php所在的位置.)

这里有一个解释的教义手册有关使用日期时间情况下工作,但我并不需要存储的时候,只是日期YYYY-MM-DD.

这似乎是一个非常普遍的问题 - 有人看到我做错了什么和/或知道如何在Doctrine2中插入日期?

php mysql date insert doctrine-orm

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

在jQuery函数中从PHP读取JSON数组

我正在使用此问题的接受答案来帮助我使用jQuery从JSON数组构建HTML选择菜单.

我的JSON数组从PHP脚本传递为$ menu,如下所示:

{ "options": [
    { "id":"7","name":"Smith, John"},
    { "id":"4","name":"Jones, Tom"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

首先,我构建选择菜单的骨架并将其插入页面:

var div = '<div class="row">';
var label = '<label for="employee">Employee</label>';
var select = '<select name="employee id="employee">';
var close = '</select></div>';
var menu = div + label + select + close;

$('#clicked_link').prepend(menu);
Run Code Online (Sandbox Code Playgroud)

然后我尝试将$ menu数组传递给jQuery,如下所示:

var json = '<?php echo $menu; ?>';
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用链接问题中的示例将选项附加到新创建的选择菜单:

var options = eval('(' + json + ')');
var length = options.length;

for (var j = 0; j < length; …
Run Code Online (Sandbox Code Playgroud)

php jquery json

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

带有退货声明的单线

有没有办法将下面的JavaScript代码编写为单行代码?

this.isContactPage = (window.location.pathname === '/contact');
if (!this.isContactPage) return false;
Run Code Online (Sandbox Code Playgroud)

如果this.isContactPage为真,则该方法继续.

this.isContactPage脚本中的其他位置需要该属性.

javascript

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

按PHP分类列出项目

有人可以帮助我按PHP分类列出项目吗?

我正在尝试按类别创建一个简单的书籍列表:

JavaScript
JavaScript模式
面向对象的JavaScript

Ajax
Ajax权威指南
防弹Ajax

jQuery
jQuery Cookbook
学习jQuery 1.3

我对数据结构或SQL查询没有任何问题:

BOOK:     book_id, book_title, fk_category_id  
CATEGORY: category_id, category_name

SELECT category.category_name, book.book_title
FROM category LEFT OUTER JOIN book
ON category.category_id = book.fk_category_id;
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何编写PHP脚本来列出每个类别标题下的书籍.

我知道足以将结果集合成一个数组,但后来我很难使用该数组来分组项目,如图所示.

另一个Stack问题解决了几乎相同的问题,但是响应没有解决PHP代码:按类别列出项目

谢谢!

php list categories

0
推荐指数
2
解决办法
2529
查看次数

焦点编辑器,将光标定位在第一个块的开头

我需要将焦点应用于 Draft.js 编辑器并将光标定位在第一行/块的开头。编辑器包含多行/块。

this.refs.editor.focus()应用时,光标始终位于编辑器内第二个块/行的开头。

使用这个问题这个问题作为指导,我尝试了下面的代码但没有成功。我怀疑传递blockMapcreateFromBlockArray()不正确:

focusTopLine() {

  this.refs.editor.focus();

  const { editorState } = this.state;
  const contentState = editorState.getCurrentContent();
  const selectionState = editorState.getSelection();
  const blockMap = contentState.getBlockMap();

  const newContentState = ContentState.createFromBlockArray(blockMap);
  const newEditorState = EditorState.createWithContent(newContentState);

  this.setState({
    editorState: EditorState.forceSelection(newEditorState, selectionState)
  });
}
Run Code Online (Sandbox Code Playgroud)

reactjs draftjs

0
推荐指数
1
解决办法
3158
查看次数

标签 统计

php ×4

doctrine-orm ×2

javascript ×2

jquery ×2

reactjs ×2

categories ×1

date ×1

draftjs ×1

insert ×1

json ×1

list ×1

mysql ×1

orm ×1

pdo ×1

react-jsx ×1