我正在创建一个显示数据库表中项目的系统,具体取决于它们是否可用.
我有两张桌子:
预订电话:
----------------------------------------------------------------------
| ResID | CarID | UserID | startTime | startDate | endTime | endDate |
----------------------------------------------------------------------
| 1 | 4 | 4 | 13:00:00 |2013-04-21 |13:00:00 |2013-04-29|
Run Code Online (Sandbox Code Playgroud)
和汽车:
-------------------------------------------
| CarID | make | model | serial | image |
-------------------------------------------
| 1 | Honda | civic | ky675 | 1.png |
Run Code Online (Sandbox Code Playgroud)
因此,当用户访问页面时,他们输入开始日期和结束日期,然后在运行查询后显示汽车列表以检查汽车是否在该日期可用.
所以我提出了这个问题.
$carstring = mysql_query("SELECT * FROM cars
{$statement}
AND deleted = 'no'
AND carID NOT IN (
SELECT carID FROM reservations
WHERE startDate …Run Code Online (Sandbox Code Playgroud) 在剪裁/调整上传图像的大小时,Sonata Media似乎只有两种策略:Sonata\MediaBundle\Resizer\SimpleResizer和Sonata\MediaBundle\Resizer\SquareResizer.这两种策略都是自动的,这意味着用户对于如何调整图像大小/缩小图像没有发言权.
我想给用户一个选项来选择更相关的图像部分,类似于GenemuFormBundle使用的jQuery Image Cropper库,但我甚至不知道从哪里开始.我是否需要创建自己的Admin类而不是使用Sonata\MediaBundle\Admin\BaseMediaAdmin?有没有人写过我可以使用的捆绑包?你经常如何管理你的画廊?

我今天在一些PHP代码中遇到了一个非常奇怪的行为.我们有一个处理文件的类.它是这样的:
class AFile {
//usual constructor, set and get functions, etc.
//...
public function save() {
//do some validation
//...
if($this->upload()) { //save the file to disk
$this->update_db(); //never reached this line
}
}
private function upload() {
//save the file to disk
//...
return ($success) ? true : false;
}
}
Run Code Online (Sandbox Code Playgroud)
它看起来很正常,但是$ this-> upload()函数永远不会返回NULL.我们检查了正确的函数是否正在运行.我们在返回之前回复了它的返回值.我们只尝试返回一个真值或一个字符串.一切都正常.但$ this-> upload仍然评估为NULL.此外,日志中没有任何内容,ERROR_ALL已打开.
在愤怒中,我们将函数名称更改为foo_upload.突然间一切都奏效了."upload"不在PHP保留字列表中.任何人都有任何想法为什么名为"上传"的类函数会失败?
我正在转换XML文档。有一个属性@prettydate,该字符串是类似于“ 2010年5月7日,星期五”的字符串。我想拆分该字符串并添加指向月份和年份的链接。我正在使用该exslt:strings模块,并且可以添加任何其他必要的EXSLT模块。
到目前为止,这是我的代码:
<xsl:template match="//calendar">
<xsl:variable name="prettyparts">
<xsl:value-of select="str:split(@prettydate,', ')"/>
</xsl:variable>
<table class='day'>
<thead>
<caption><xsl:value-of select="$prettyparts[1]"/>,
<a>
<xsl:attribute name='href'><xsl:value-of select="$baseref"/>?date=<xsl:value-of select="@highlight"/>&per=m</xsl:attribute>
<xsl:value-of select='$prettyparts[2]'/>
</a>
<xsl:value-of select='$prettyparts[3]'/>,
<a>
<xsl:attribute name='href'><xsl:value-of select="$baseref"/>?date=<xsl:value-of select="@highlight"/>&per=y</xsl:attribute>
<xsl:value-of select='$prettyparts[4]'/>
</a>
</caption>
<!--etcetera-->
Run Code Online (Sandbox Code Playgroud)
我已经通过运行$ prettyparts验证了<xml:for-each/>我正在获得预期的节点集:
<token>Friday</token>
<token>May</token>
<token>7</token>
<token>2010</token>
Run Code Online (Sandbox Code Playgroud)
但是,无论我尝试以哪种方式<token>直接引用某个特定对象(而不是在foreach中),我都不会得到与无效类型有关的任何错误或各种错误。这是我尝试过的一些语法:
<xsl:value-of select="$prettyparts[2]"/>
<xsl:value-of select="$prettyparts/token[2]"/>
<xsl:value-of select="exsl:node-set($prettyparts/token[2])"/>
<xsl:value-of select="exsl:node-set($prettyparts/token)[2]"/>
Run Code Online (Sandbox Code Playgroud)
知道表达应该是什么吗?
预计到达时间:感谢@DevNull的建议,正确的表达为:
<xsl:value-of select="exsl:node-set($prettyparts)[position()=2]"/>
Run Code Online (Sandbox Code Playgroud)
并且,我必须以这种方式设置变量:
<xsl:variable name="prettyparts" select="str:split(@prettydate,', ')" />
Run Code Online (Sandbox Code Playgroud) 我有一个包含六个图的列表,如下所示:
voi=c('inadist','smldist','lardist')
plist <- llply(voi,
function(v,df,s) {
list(
assign(
paste(v,'.violin'),
bwplot(groupname~df[,which(colnames(df)==v)]|fCycle*fPhase,
data=df,
groups=groupname, col=rainbow(1), box.ratio=3,
main=paste('Distribution of ', v, ' by Treatment and Cycle'),
sub=s, xlab=v, panel=panel.violin)),
assign(
paste(v,'.hexbin'),
hexbinplot(df[,which(colnames(df)==v)]~starttime|groupname,
data=df, xlab='Time(s)',main= paste('Distribution of ',v,' by Treatment'),
sub=s,ylab=v, aspect=0.5, colramp=redgrad.pal, layout=c(2,4)))
)
},data,meta$exp_name)
Run Code Online (Sandbox Code Playgroud)
如果我打印列表,print(plist)图表将输出到图形设备,然后将索引输出到控制台,结果如下:
[[1]]
[[1]][[1]]
[[1]][[2]]
[[2]]
[[2]][[1]]
[[2]][[2]]
[[3]]
[[3]][[1]]
[[3]][[2]]
Run Code Online (Sandbox Code Playgroud)
因为我正在编写一个webapp,我需要非常严格地控制控制台输出.到目前为止,我可以输出绘图而不输出索引的唯一方法是这样的:
for(p in plist)
for(i in p)
print(i)
Run Code Online (Sandbox Code Playgroud)
是否有更有效的方式来获得我需要的东西?
我正在寻找一种比较PHP中对象数组的简洁方法.我知道我可以检查相同大小的数组,然后遍历一个数组,寻找第二个数组中的每个对象,但我认为使用一个或多个数组比较函数会更好.
我已经测试了几个对象数组,我遇到的主要问题是数组比较函数坚持比较元素strings,如下所示:
class Foo{
public $pk=NULL;
function __construct($pk){
$this->pk=$pk;
}
function __toString(){
return (string)$this->pk;//even an integer must be cast or array_intersect fails
}
}
for($i=1;$i<7;$i++){
$arr1[]=new Foo($i);
}
for($i=2;$i<5;$i++){
$arr2[]=new Foo($i);
}
$int=array_intersect($arr1,$arr2);
print_r($int);
Run Code Online (Sandbox Code Playgroud)
输出
Array
(
[1] => Foo Object
(
[pk] => 2
)
[2] => Foo Object
(
[pk] => 3
)
[3] => Foo Object
(
[pk] => 4
)
Run Code Online (Sandbox Code Playgroud)
)
如果对象具有__toString()方法并且这些__toString()方法返回唯一标识符并且从不返回,那就没问题''.
但是,如果不是这种情况会发生什么,例如对于这样的对象:
class Bar{
public $pk=NULL;
function …Run Code Online (Sandbox Code Playgroud) 我正在尝试设计一个PHP对象(称之为Incident_Collection),它将包含其他对象的集合,每个对象都实现一个Incident接口.
<?php
class Foo implements Incident {
protected $incident_date; //DateTime object
protected $prop1;
protected $prop2;
//etc
public function when(){ //required by Incident interface
return $this->incident_date;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
起初我想我只是创建我的Incident_Collection工具IteratorAggregate并将Incident对象存储在集合的数组属性中:
<?php
class Incident_Collection implements IteratorAggregate {
protected $collection=array();
public function getIterator(){
return new ArrayIterator($this->collection);
}
public function sort(){
//sort by $incident->when() values in $this->collection
}
/*also __get($var), __set($var,$value), add(Incident $object), remove(Incident $object) and other functions*/
}
?>
Run Code Online (Sandbox Code Playgroud)
但是因为Incident对象具有自然顺序,我认为可能扩展其中一个SPL数据结构可能更合适/更有效.但是哪一个? …
我在升级之前在PHP5.4上测试我现有的代码.我发现以下代码不再有效,因为PHP已经收紧了它的继承模型.由于这种紧缩,我一直在阅读有关SOLID,特别是Liskov的替代原则(我是一名自学成才的程序员),这样我就可以改进我的代码,而不会受到未来"拧紧"的影响.
interface IComparable {
public function equals(self $other);
}
class A implements IComparable{
protected $var;
public function __construct($v){
$this->var=$v;
}
public function equals(self $other){
return ($this->var == $other->var) ? 'equal' : 'different';
}
}
$a1= new A(7);
$a2= new A(5);
$a3= new A(5);
echo $a1->equals($a2),"\n";
echo $a2->equals($a3),"\n";
Run Code Online (Sandbox Code Playgroud)
PHP致命错误:A :: equals()的声明必须与IComparable :: equals兼容(IComparable $ other)
如果我以这种方式编写代码,我可以避免php5.4错误:
interface IComparable {
public function equals($other);
}
class A implements IComparable{
protected $var;
public function …Run Code Online (Sandbox Code Playgroud) jSignature有画布,它有一个类.如何验证jSignature我是否画了一些东西?
我为click事件添加了一个绑定.
$sigdiv.bind('click', function(e) {
$("#num_strok").val(parseInt($("#num_strok").val()) + 1);
});
Run Code Online (Sandbox Code Playgroud)
问题是我点击某个角落也会num_strock增加.对于一些拖累它不会增加.
我曾在谷歌尝试过是否有内置isEmpty功能.但我还没有找到任何东西.
我想知道是否可以迭代 ShinyUI 输出元素。
在我的 Shiny 应用程序中,我有一些uiOutput以非常相似的方式呈现的元素。我想在循环中引用它们(渲染它们),例如使用它们的id. 我想做这样的事情:
for(element.id in uiOutput.ids){
output[element.id] <- renderUI({...})
}
Run Code Online (Sandbox Code Playgroud)
当然,这样的代码会导致以下错误:
Error in `[<-.shinyoutput`(`*tmp*`, "some_id", value = function ():
Single-bracket indexing of shinyoutput object is not allowed.
Run Code Online (Sandbox Code Playgroud)
因为引用 ShinyUI 输出元素的正确方法(我的意思是:我知道的唯一方法)是:
output$some_id <- renderUI({...})
Run Code Online (Sandbox Code Playgroud)
谢谢您的任何建议!