小编ray*_*ygo的帖子

设计数据库以跟踪所有者

在我的业务逻辑中,我有一个用户,一个公司(用户可以是公司的一部分,作为员工,我称之为"代理")和产品.

产品可以由用户或公司拥有,公司可以稍后将其分配给用户(代理),但它仍然由公司拥有(如果公司激活代理).

我的想法是拥有用户表,公司表和产品表以及一个表来跟踪谁是产品的所有者:

--------------
|   users    | 
--------------
|   user_id  |
|  name      |
--------------
--------------
|   products |
--------------
| product_id |
|  title     |
--------------
--------------
|   company  |
--------------
| company_id |
|  name      |
--------------

--------------
|   agents   |
--------------
| agent_id   |
|  user_id   |
| company_id |
--------------

----------------
|product_owner |
----------------
|     id       |
|  product_id  |
|  user_id     |
|  company_id  |
|agent_assigned|
----------------
Run Code Online (Sandbox Code Playgroud)

如果产品归用户所有,则只会填充product_id和user_id.如果它由公司拥有,那么将填写product_id,company_id和agent_assigned.

之后,我想要提取产品,并知道谁是所有者:用户信息,代理商和公司信息.

这是最好的方法吗?这对我来说似乎不太好.

php mysql sql database-design

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

Doctrine继承 - 来自Joined表的Single_Table继承

这是我想要的配置:

一个实体"帐户",其中包含对两个其他实体的JOINED继承:"作者"和"AccountBackend".

然后我希望"AccountBackend"与其他两个实体具有SINGLE_TABLE继承:"Administrator"和"FeaturedAuthor".这是我定义它们的方式:

Account.php

/** 
 * @Entity (repositoryClass="Repositories\Account") 
 * @Table(name="accounts")  
 * @InheritanceType("JOINED")
 * @DiscriminatorColumn(name="discr", type="integer")
 * @DiscriminatorMap({"1"="Author","2"="AccountBackend"})
 * @HasLifecycleCallbacks
 */
class Account
{
Run Code Online (Sandbox Code Playgroud)

Curator.php

/**
 * @Entity
 * @Table(name="accounts_author")
 */
class Author extends Account
{
Run Code Online (Sandbox Code Playgroud)

AccountBackend.php

/** 
 * @Entity (repositoryClass="Repositories\AccountBackend") 
 * @Table(name="accounts_backend")  
 * @InheritanceType("SINGLE_TABLE")
 * @DiscriminatorColumn(name="discr", type="integer")
 * @DiscriminatorMap({"1"="FeaturedAuthor","2"="Administrator"})
 * @HasLifecycleCallbacks
 */
class AccountBackend extends Account
{
Run Code Online (Sandbox Code Playgroud)

FeaturedAuthor.php

/**
 * @Entity
 */
class FeaturedAuthor extends AccountBackend
{
Run Code Online (Sandbox Code Playgroud)

Administrator.php

/**
 * @Entity
 */
class Administrator extends AccountBackend
{
Run Code Online (Sandbox Code Playgroud)

当我定义它们时,当我尝试通过CLI进行更新时,它说

"实体'实体\ AccountBackend'必须是'实体\帐户'的鉴别器映射的一部分才能在继承层次中正确映射.或者,您可以将'Entities\AccountBackend'设为抽象类,以避免发生此异常." …

php inheritance symfony doctrine-orm

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

jQuery Validate 图像扩展案例

我正在使用 jquery 验证来验证图像上传扩展。现在我有类似的东西:

$("#photo").rules("add", {
        accept: "jpg|jpeg|png|"
    });
Run Code Online (Sandbox Code Playgroud)

问题是这只会在扩展名是小写的情况下接受。我可以

$("#photo").rules("add", {
        accept: "jpg|jpeg|png|JPG|JPEG|PNG"
    });
Run Code Online (Sandbox Code Playgroud)

但我希望即使扩展名是 jPG 或 JPg,它也能工作。我试过这个正则表达式:

 accept: "/\.(jpe?g|gif|png)$/i"
Run Code Online (Sandbox Code Playgroud)

不知道我的正则表达式是错误的还是插件不接受正则表达式。任何的想法?谢谢!

javascript regex jquery jquery-validate

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

在Doctrine中使用LIMIT的子查询

我正在尝试使用Doctrine进行子查询的查询.现在它给了我一个错误.我在存储库中的功能是:

public function getRecentPlaylists($count = 3) {


    $q = $this->_em->createQuery("
            SELECT p.id,
            p.featuredImage,
            p.title,
            p.slug,         
            a.firstName,
            a.lastName,
            a.slug as authorSlug,
            (SELECT updated 
                     FROM \Entities\Articles 
                     ORDER BY updated DESC LIMIT 1) as updated
            FROM \Entities\Playlist p
            JOIN \Entities\Account a
                        ON p.account_id = a.id
            ")
        ->setMaxResults($count);

            try{    
            return $q->getResult();
            }catch(Exception $e){
                echo $e->message();
            }

}
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

[Semantical Error] line 0, col 210 near 'LIMIT 1) as updated FROM': Error: Class 'LIMIT' is not defined.
Run Code Online (Sandbox Code Playgroud)

我几乎放弃了Doctrine,我无法弄清楚如何使用子查询或带有子查询的联合进行查询.有什么帮助这个功能?谢谢!

php mysql zend-framework symfony doctrine-orm

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

用php创建一个空的html文件

我正在尝试通过php创建一个空白的html文件.我写了一些代码,但似乎没有用.这是我的代码:

            $filename = 'test.html';        
    header("Cache-Control: public");
    header("Content-Description: File Transfer");       
    header("Content-Disposition: attachment; filename=$filename");
    header("Content-Type: application/octet-stream; ");
    header("Content-Transfer-Encoding: binary");
Run Code Online (Sandbox Code Playgroud)

当我单击将创建此文件的链接时,它会给我一个html文件,但是当我看到源代码时,它会显示我请求此页面的页面的源代码.

这有什么原因吗?还有什么更快?每次用户询问或只是拉出一个创建的空文件时生成一个html文件,并在用户询问时重命名它?谢谢!

html php

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

如何以logstash grok模式转义反斜杠?

这是我的日志:

68.192.186.96 - - [18/May/2015:12:54:42 +0000] GET http://test.com/sectionId/592/apiVersion/2/type/json HTTP/1.1 200 575 \"-\" \"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36\" \"icon_seq=0; PHPSESSID=frmnhfrrc25ullikbv71thc283\"
Run Code Online (Sandbox Code Playgroud)

这是我的模式

%{IPORHOST:remoteip} \- \- \[%{HTTPDATE:timestamp}\] %{WORD:verb} %{NOTSPACE:request} HTTP/%{NUMBER:httpversion} %{NUMBER:status} %{NUMBER:requestNum} \"\-\" %{QUOTEDSTRING:agent}
Run Code Online (Sandbox Code Playgroud)

当我检查时,日志中的反斜杠给我带来了问题。我该如何逃脱?谢谢!

logstash logstash-grok

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

在日期时间字段中删除毫秒

我使用工作台将数据库从MS SQL转换为MySql。有一个表具有称为ActivityDatedatetime(6))的列。由于某种原因,当该列被转换时,它在日期中会有一个点,例如(2013-05-03 11:20:20.420000)。

我想删除.420000或点后的任何数字。我尝试这样做,SUBSTRING_INDEX(ActivityDate,'.',1)但是没有用,最后一位是.000000

我也尝试过UPDATE警报.activitylog SETActivityDate = date_format(ActivityDate, '%Y-%m-%d %H:%i') WHEREactivitylog .ActivityLogID= 5;

同样的问题...我明白了 .000000到最后

我怎样才能做到这一点?

mysql datetime substring

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

Doctrine2:在QueryBuilder中使用日期函数

我想知道如何使用最新功能,如WEEKMONTH查询生成器.我正在使用Zend而不是Symfony.当我用WEEK尝试当前代码时,我收到此错误:

Error: Expected known function, got 'WEEK'
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码:

<?php
  namespace Repositories;
  use Doctrine\ORM\EntityRepository;
  /**
   * Analytic
   *
   * This class was generated by the Doctrine ORM. Add your own custom
   * repository methods below.
   */
  class Analytic extends EntityRepository {
    public function getSocialAnalytics($type){
      $response = false;
      if($type){
        $qb = $this->_em->createQueryBuilder();
        $qb
          ->select('a')
          ->from('\Entities\Analytic', 'a');
        $qb->where(' a.type = :type ');
        $qb->andWhere(' WEEK(NOW()) = WEEK(created) ');
        $qb->setParameter('type', $type);
        $response =  $qb->getQuery()->getResult(\Doctrine\ORM\Query::HYDRATE_OBJECT);
      }
      return $response;
    }
  }
Run Code Online (Sandbox Code Playgroud)

这是我的配置:

// …
Run Code Online (Sandbox Code Playgroud)

php dql doctrine-query doctrine-orm

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

Ajax只被调用一次

我有一个关注和取消关注按钮.当然,当您单击"关注"按钮时,应显示取消关注按钮.单击"关注"按钮时,应显示"取消关注"按钮.

截至目前,当您点击"关注"时,数据库会更新,"关注"按钮消失,并显示"取消关注"按钮.问题是,如果我再次点击"取消关注"按钮,则没有任何反应.即使我放了一个console.log('test'); 在脚本的顶部,没有任何作用.这是我的代码:

使用Javascript:

$(document).ready(function(){
    console.log('test');

    $('.follow').click(function(){
        console.log('yes');
            var userid = $(this).attr("id");
            var dataString = 'id='+ userid ;
            var self = this;                
              $.ajax({
                    type: "POST",
                    url: "/ajax/follow",
                    data: dataString,
                    success: function(result) {
                        var json = $.parseJSON(result);
                            $(self).remove();
                        $('#followButton').append(                                     
                     $('<a href="#" class="button unfollow" id="unfollow_'+ json +'">- unfollow</a>')
                );
                }
              });
    });
    $('.unfollow').click(function(){
        console.log('no');
        var id = $(this).attr("id");
        var dataString = 'id='+ id ;
        var self = this;            
        $.ajax({
                type: "POST",
                url: "/ajax/unfollow",
                data: dataString,
                success: function(result) {    
                    $(self).remove();                       
                    $('#followButton').append(                                     
                $('<a href="#" …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery

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