在我的业务逻辑中,我有一个用户,一个公司(用户可以是公司的一部分,作为员工,我称之为"代理")和产品.
产品可以由用户或公司拥有,公司可以稍后将其分配给用户(代理),但它仍然由公司拥有(如果公司激活代理).
我的想法是拥有用户表,公司表和产品表以及一个表来跟踪谁是产品的所有者:
--------------
| 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.
之后,我想要提取产品,并知道谁是所有者:用户信息,代理商和公司信息.
这是最好的方法吗?这对我来说似乎不太好.
这是我想要的配置:
一个实体"帐户",其中包含对两个其他实体的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'设为抽象类,以避免发生此异常." …
我正在使用 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)
不知道我的正则表达式是错误的还是插件不接受正则表达式。任何的想法?谢谢!
我正在尝试使用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创建一个空白的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文件,并在用户询问时重命名它?谢谢!
这是我的日志:
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)
当我检查时,日志中的反斜杠给我带来了问题。我该如何逃脱?谢谢!
我使用工作台将数据库从MS SQL转换为MySql。有一个表具有称为ActivityDate(datetime(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到最后
我怎样才能做到这一点?
我想知道如何使用最新功能,如WEEK或MONTH查询生成器.我正在使用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) 我有一个关注和取消关注按钮.当然,当您单击"关注"按钮时,应显示取消关注按钮.单击"关注"按钮时,应显示"取消关注"按钮.
截至目前,当您点击"关注"时,数据库会更新,"关注"按钮消失,并显示"取消关注"按钮.问题是,如果我再次点击"取消关注"按钮,则没有任何反应.即使我放了一个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) php ×5
doctrine-orm ×3
mysql ×3
html ×2
javascript ×2
jquery ×2
symfony ×2
ajax ×1
datetime ×1
dql ×1
inheritance ×1
logstash ×1
regex ×1
sql ×1
substring ×1