小编Dav*_*ave的帖子

从CakePHP中的模型中分页

我在我的函数Event模型叫做getEvents-你可以通过限制,start以及end日期fields,event types和事件subtypes.

我看,paginate能接受我使用喜欢的所有参数joins,conditions,limit...等等就像一个正常find即可.

当我不尝试分页时,它返回数据就好了.但是 - 我希望能够传递一个paginate变量来告诉它而不是这样做:

$this->recursive = -1;
$data = $this->find('all', $qOptions);
Run Code Online (Sandbox Code Playgroud)

去做这个:

$this->recursive = -1;
$data = $this->paginate($qOptions);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试时,它给了我很多错误.如果需要,我可以稍后指定错误 - 现在,我想我正在寻找 - 这是可以做到的吗?如果是这样,怎么样?

有没有更好的方法来做这样的事情?我花了足够的时间让这个功能做我想要的,并允许所有选项传递...等 - 如果我不能用它进行分页,这似乎是浪费.但是 - 如果它不理想,我也能听到.提前致谢.

编辑:

我正在网上阅读其他内容,说你不应该在你的模型中使用paginate,因为它是从URL变量中提取的,这会破坏MVC结构的目的.这是有道理的,但这是否意味着我必须在模型和控制器中编写相同的连接/查询?在每一个需要的行动中?

cakephp model paginate cakephp-1.3

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

未在本地缓存的图像(使用通用图像加载程序) - 图像加载时间较慢

问题描述: 我正在创建一个可滚动的文章列表,其中包含由我的SQLite数据库填充的缩略图.一般来说,除了缓慢之外,它"工作":

图像加载非常缓慢...我想使用" 通用图像加载器 "缓存了设备上的图像,如果你已经查看它们(或者至少接近那个图像),它们会使它们看起来只是滚动到视图中).但是 - 当您向上/向下拖动时,没有任何图像存在,然后3-5秒后,图像开始弹出(好像它正在重新下载它们)

我正在改变动态缩略图框的可见性,但这样做完美无瑕 - 它们似乎没有改变 - 它们只是滚动到视图中,没有闪烁或任何东西.(但随后图像不再出现几秒钟).

我已经通过在滚动后删除我的PHP脚本进行测试...当我滚动回到prev spot时,图像没有显示 - 让我认为它是从我的PHP脚本每次加载.

但根据文档: "UsingFreqLimitedMemoryCache(超出缓存大小限制时删除最不常用的位图) - 默认情况下使用"

细节:

在我的ArticleEntryAdapter.js身上:

@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {

    // We need to get the best view (re-used if possible) and then
    // retrieve its corresponding ViewHolder, which optimizes lookup efficiency
    final View view = getWorkingView(convertView);
    final ViewHolder viewHolder = getViewHolder(view);
    final Article article = getItem(position);

    // Set the title …
Run Code Online (Sandbox Code Playgroud)

java android listview image

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

生成带有图像的PDF太慢了

我现在遇到的一大瓶颈是每次有人下订单时生成PDF.对于单个订单来说这不是什么大问题,但是如果在很短的时间内有很多,那么这个过程非常缓慢.

PDF需要文本信息,QR码,条形码,徽标以及1个或更多(最多20+)1/4宽度的图像.

当前流程w/DOMPDF:

  1. QR码图像用PHP创建并保存为png
  2. 条形码图像已创建并保存为png
  3. DomPDF生成PDF

新想法:

  1. HTML2PDF创建PDF,并使用它的qr和条形码标签生成条形码

从理论上讲,这将照顾QR和条形码图像,但是,其余的图像仍然会使它太慢.

这样做,没有(QR和条形码)以外的任何图像,PDF可以在~500ms内生成,但是一旦我开始添加图像,它每次上升到2,3,4,5秒.


当运行测试并处理~10k订单(几分钟内)时,它仍在12小时后处理PDF,直到我沮丧地关闭它.

PDF是在单独的队列过程中生成的,因此该人员在订购时无需等待,但是 - 仍然......在高流量时,他们不能花费5个多小时来接收他们的确认PDF.


问题/ TLDR:

如何使用动态qr代码,动态条形码,动态文本和1-20个静态图像(所有PDF中的图像相同)更快地创建PDF?

还有其他我没想过的潜在事吗?也许制作模板PDF并以某种方式使用PHP来填充动态点?

php pdf performance cakephp cakephp-2.5

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

如何在控制器中创建一个URL,如HtmlHelper

TLDR:我如何在Controller中创建一个URL,类似于如何使用HtmlHelper在视图中创建URL?


问题:

我想在我的控制器中打印一个控制器动作的url(因为我在我的控制器中创建了我的JSON字符串,而不是在视图中)

在一个View,我可以使用$this->Html->url(),但在控制器呢?

我应该使用定义的常量如APP_DIR+ Controller name + Controller action吗?)

cakephp html-helper cakephp-2.x cakephp-3.x

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

CakePHP 3中同一模型的多个关联

我正在使用cakePHP版本3.x.

当我查询MessagesTable时,我想获取发送者和消息接收者的用户数据.我已经在cakePHP 2中多次这样做但我无法弄清楚为什么它不能在3.x版本中运行.

我有一个UsersTable和一个MessagesTable.

UsersTable

$this->hasMany('Messages');
Run Code Online (Sandbox Code Playgroud)

MessagesTable

$this->belongsTo('Users', [
    'foreignKey' => 'sender_id',
    'propertyName' => 'Sender',
]);
$this->belongsTo('Users', [
    'foreignKey' => 'user_id',
    'propertyName' => 'Receiver'
]);
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的查询

$messages = $this->Messages->find()
        ->where(['Messages.user_id' => $this->Auth->user('id')])
        ->orwhere(['Messages.sender_id' => $this->Auth->user('id')])
        ->order(['Messages.created' => 'DESC'])
        ->contain([
            'Users.Pictures',
        ]);
Run Code Online (Sandbox Code Playgroud)

我收回了Receiver数据,但也没有收到Sender数据.任何帮助将非常感激

php cakephp belongs-to model-associations cakephp-3.0

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

CakePHP - 包含基于特定页面的CSS?

我想要包含一个应该应用于主页的特定css文件,以及整个网站中的6-7个其他页面.

我知道我可以通过PHP,获取URL,找到什么页面,链接css等等来做到这一点,但我想知道是否有一个光滑的方式(或任何更好的方式)使用CakePHP包含正确的CSS文件(S).

我意识到我可以从特定的视图链接CSS文件,但是 - 然后它们不会在<head>.有没有办法从视图中链接并将其显示在头部?

我希望我的问题有意义,并非常感谢任何帮助.

php cakephp cakephp-1.3

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

CakePHP - 查询返回空字段,如果它有一个特殊字符

我认为在CakePHP中是一个普通的查询调用 - 它适用于所有结果,但是当一个字段中有一个特殊字符时,该字段将返回空.它没有破坏 - 它仍然给我剩下的领域 - 它只是一个空的领域.

例:

$this->paginate = array(
'conditions' => array(
     'Item.name != ' => '',
),
);
$data = $this->paginate('Item');
Run Code Online (Sandbox Code Playgroud)

这将返回我的表中的所有项目(包括我认为具有空名称字段的项目) - 但是当我尝试将名称回显到页面时,它适用于除具有特殊字符(é)的项目之外的每个项目.我将它改为正常的"e",它显示正常.

即使他们的名字中有特殊字符,我怎样才能返回结果?提前致谢!

php cakephp cakephp-1.3

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

自我"HABTM"或"HasMany Through"概念混乱

赏金:

+500代表赏金的解决方案.我已经严重撞击这堵墙了两个星期了,我已准备好帮忙了.

表/模型(简化为显示关联)

  • 节点
    • ID
    • 名称
    • node_type_id
  • node_associations
    • ID
    • NODE_ID
    • other_node_id
  • node_types
    • ID
    • 名称

大概的概念:

用户可以创建节点类型(例如"电视台","电视节目"和"演员"......任何东西).如果我提前知道节点类型是什么以及每个节点之间的关联,我只是为它们制作模型 - 但我希望这是非常开放的,以便用户可以创建他们想要的任何节点类型.然后,(特定节点类型的)每个节点可以与任何其他节点类型的任何其他节点相关.

描述和我尝试过的内容:

每个节点都应该能够与任何/每个其他节点相关联.

我的假设是,要做到这一点,我必须有一个关联表 - 所以我做了一个名为"node_associations",其中包含node_idother_node_id.

然后我建立了我的关联(通过我相信使用hasMany):(以下是我对我的设置的最好记忆......它可能稍微关闭)

//Node model
public $hasMany = array(
    'Node' => array(
        'className' => 'NodeAssociation',
        'foreignKey' => 'node_id'

    ),
    'OtherNode' => array(
        'className' => 'NodeAssociation',
        'foreignKey' => 'other_node_id'
    )
);

//NodeAssociation model
public $belongsTo = array(
    'Node' => array(
        'className' => 'Node',
        'foreignKey' => 'node_id'

    ),
    'OtherNode' => array(
        'className' => 'Node',
        'foreignKey' => 'other_node_id' …
Run Code Online (Sandbox Code Playgroud)

cakephp associations has-and-belongs-to-many has-many-through cakephp-2.1

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

Laravel - 使用数据在现有表上添加外键

我有现有的objects数据表.现在我需要holdings添加一个名为的新表,并添加从对象到holdings表的关系.在迁移文件中,我打印出来:

$table->foreign('holding_id')->references('id')->on('holdings')->onDelete("NO ACTION");
Run Code Online (Sandbox Code Playgroud)

尝试迁移时出现此错误

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update 
a child row: a foreign key constraint fails (`kolomnaoffice`.`#sql-f10_126` 
CONSTRAINT `objects_holding_id_foreign` FOREIGN KEY (`holding_id`) 
REFERENCES `holdings` (`id`) ON DELETE NO ACTION) (SQL: alter table `objects` add constraint 
`objects_holding_id_foreign` foreign key (`holding_id`) references `holdings` 
(`id`) on delete NO ACTION)
Run Code Online (Sandbox Code Playgroud)

我有正确的数据库结构(都是InnoDB),字段存在并且具有正确的类型(int).唯一不同的是表objects填充了数据,表holdings是新的和空的.

mysql migration foreign-keys laravel laravel-5.4

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

MySQL SELECT,其中布尔字段为 NULL 或 false

好的,我一定在这里遗漏了一些非常简单的东西。我只想从 user_id 匹配的表中返回所有记录(简单!)并且“已支付”字段为 NULL 或 0。我的“已支付”字段是 TinyInt (1)。

我的 CakePHP 模型代码是:

$workingRecord = $this->find('first',array(
    'conditions'=>array(
        'Subscription.user_id'=>$userId,
        array('not' => array('Subscription.paid' => true)) // Not True, to catch both false or NULL values
    )
));
Run Code Online (Sandbox Code Playgroud)

CakePHP 生成的 SQL 是这样的:

SELECT `Subscription`.`id`, `Subscription`.`paid` FROM `subscriptions` AS `Subscription` WHERE `Subscription`.`user_id` = 3 AND NOT (`Subscription`.`paid` = '1') LIMIT 1
Run Code Online (Sandbox Code Playgroud)

常识会说这应该有效。问题是 SQL 将返回 'paid' 列中包含 0 的行,但永远不会返回 NULL。

有没有办法在不使用“或”的情况下一次性返回零和空值?

提前致谢。

mysql cakephp cakephp-2.0 cakephp-2.1

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