问题标签 [lithium]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
338 浏览

php - 在 Lithium 中调用 MySQL 函数

如何在Lithium Framework 的CRUD中调用 MySQL 函数(如GeomFromText()SELECT AS) ?使用database->read()很不方便(我经常更改数据库列)并且将函数包含在变量的值中只会被转义。

0 投票
2 回答
677 浏览

php - 锂:如何从另一个内部调用一个验证过滤器

我有一个从中扩展的基本模型。在其中,我定义了两个验证过滤器。一个检查记录是否唯一,另一个检查记录是否存在。它们的工作方式完全相同,只是返回值与另一个相反。

因此,两次编写相同的代码只返回不同的值听起来是不对的。我想知道如何从另一个调用一个自定义验证器。

这是我的unique验证器代码:

exists应该像这样工作:

但显然,不能那样做。我是否必须将验证函数定义为匿名函数,将其分配给变量并将其传递而不是闭包?或者有什么方法可以unique从内部调用exists

0 投票
2 回答
956 浏览

php - 正确使用 call_user_func_array

我正在尝试使用 smarty 扩展 Lithium PHP,除了我的 smarty 插件允许访问锂助手之外,一切正常。

我的 smarty 功能旨在成为锂帮手的“总括”。我正在努力的部分是动态地将助手参数添加到我的回调中。

简化代码

这导致<a href="/Google">Google</a>

一些进一步的测试表明,上面只将 $params 数组中的第一项传递给回调......奇怪。所以我将它包装在自己的数组中。拿那个,我无法解释的事情!

这会产生一个锂错误,我不会进入,但是看起来助手正在传递一个数组,而不是从数组中翻译的参数作为单独的参数。

错误片段 “未找到 URL 的参数匹配项( 0 => 'Google', 1 => 'http://www.google.com', 'controller' => 'pages', 'action' => 'index')

所以我认为我错过了 call_user_func_array 方法。

我不认为这是实现我的目标的唯一解决方案,如果您能想到一种更好的方法来随时动态地传递函数任意数量的参数,我会很高兴。

请注意:$this-> html->link是解释我的问题的一种简化方法,该对象的htmllink部分实际上会动态变化,因此需要完全动态的函数参数。

0 投票
3 回答
1567 浏览

php - 用于 TDD 的 PHP 框架

我正在开始一个个人项目,该项目应该(希望)发展成为一家初创公司,该项目需要很好地扩展,我更愿意现在将时间投入到 TDD 上。

我是锂的忠实粉丝,我知道锂有自己的内置测试套件,但我找不到任何可靠的文档,而且我以前从未做过任何真正的 TDD。

有没有更好的方法让我去?还是我应该坚持使用锂并磨练学习过程?

编辑:只是为了澄清。我说的是 PHP 框架,而不是测试框架。

0 投票
2 回答
945 浏览

php - 如何将 Lithium PHP 框架与集合的枚举列表和模型中的更改集合一起使用

我希望使用 Lithium 框架来构建我的应用程序配置界面,因为我喜欢它的最小方法和以文档存储(即 Mongodb)为中心的模型。

但是,(我知道它还没有完全发布),几乎没有信息、教程或示例可以让您从简单的博客教程继续前进。

我现在要做的是构建一个应用程序,它将向我展示我在 Mongodb 中拥有的集合,然后让我使用我选择的任何集合。我似乎无法弄清楚:

a)我将如何构建一个枚举集合的模型 - 最好根据我的内部命名方案,

b)我如何打破约定模型,以便我可以指定要使用的集合的名称?

我认为有两件事我正在努力回答这两个问题 - 也许是对如何在 MVC 中移动模型超出简单的集合-模型-控制器-视图示例的基本误解,其次,告诉的实际过程mongo 数据源使用什么集合。

任何指针或例子,感激地收到。

克里斯

更新::

所以我想出了如何设置集合 - 作为参考,您可以在 $_meta 数组中设置源,如下所示:

仍然不知道如何使用一个模型来列出我在我的数据库中拥有的所有集合。任何想法如何从哲学和技术的方式做到这一点?

进一步更新:

所以感谢下面的评论,我得到了进一步的帮助。至少我现在可以重新表述一下这个问题。我可以像这样定义我的模型:

那么在我看来,我可以使用:

这行得通 - 但是,我真正想做的不是在我的模型中创建一个“testcolls”方法,而是正如 Medhi 下面建议的那样,我需要覆盖 find 方法。我似乎无法弄清楚如何做到这一点以及它需要返回什么。文档对此并不太清楚。

最终更新

基于下面的评论和一些实验,我想出了以下方法,可以使用集合作为参数调用 find 。

模型:

控制器:

最后得到一个返回集合列表的模型也很简单:

请注意,控制器不支持选项或过滤器。

0 投票
4 回答
1038 浏览

sql - 左连接的锂计数

作为具有动态生成元素的更大查询的一部分,我需要进行左连接和计数。这是我需要的查询。

我尝试构建一个连接查询,但 Lithium 似乎期望连接成为关系的一部分(未定义任何关系),如下所示(暂时忽略计数)。

这导致Notice: Undefined index: ClientTest in /usr/local/www/oars/libraries/lithium/data/collection/RecordSet.php on line 340,这似乎是与关系相关的代码。

如果我确实定义了hasManyClient 和 ClientTest 之间的关系,它将为我处理构建左连接,有没有办法获取 Client 字段和计数?

这导致( ! ) Notice: Undefined index: count(ClientTest in /usr/local/www/oars/libraries/lithium/data/source/Database.php on line 650,所以要么不可能,要么我使用了错误的语法。

我可以直接使用 直接发出查询Client::connection()->read($sql),但是由于查询中有动态元素,所以无论如何我都必须构建 SQL。

有没有办法让上述方法起作用,还是我应该手动构建 SQL?

0 投票
2 回答
1125 浏览

lithium - 锂链路路由

我正在尝试创建我的第一个锂应用程序,但我遇到了一个非常奇怪的错误。

我的索引视图中有一行,

<td><?php echo $this->html->link($question->title, array('controller'=>'questions','action'=>'view','id'=>$question->id)); ?></td>

我想它会链接到该记录视图,并且使用'questions/view'.$question->id'它确实如此,但是,使用数组 url 我得到了致命的。

Fatal error: Uncaught exception 'lithium\net\http\RoutingException' with message 'No parameter match found for URL('控制器' => '问题', '动作' => '视图', 'id' => '1').' in /Applications/MAMP/htdocs/learning-lithium/libraries/lithium/net/http/Router.php on line 306

在我看来,路由器正在尝试匹配帮助程序中的 url,并且由于某种原因它不能,因此它抛出了异常。有谁知道这是为什么?我从 CakePHP 的角度攻击锂,所以这对我来说似乎很奇怪。

0 投票
1 回答
1062 浏览

php - 锂表单助手数据和错误丢失?

我正在构建一个测试锂应用程序来了解它是如何工作的,我发现表单助手似乎没有识别出我的数据被传回或任何验证错误。

目前我不得不手动传回我的错误,然后在视图中处理它们。

QuestionsController::ask

意见/问题/ask.html.php

我可以从该方法中看到lithium\template\helper\Formfield()方法可以采用一个template参数,在示例中是<li{:wrap}>{:label}{:input}{:error}</li>这样,因此帮助程序中有显示验证消息的能力。

那么如何在我的控制器中组织我的数据,以便将其传递回视图,以便帮助程序填充我的字段并显示错误?

编辑
我应该添加示例“Sphere”应用程序,也使用这种方法,那么它是标准的吗?(参考

0 投票
2 回答
848 浏览

lithium - 用于锂会话的 Memcache、Mongodb 或其他数据库存储

我对 Lithium 框架感到满意,并且想知道是否有任何示例可以使用 MongoDB 或 Memcache 进行 Lithium Sessions。是否需要编写一个新的会话适配器?

0 投票
1 回答
154 浏览

php - Lithium & phpActiveRecord - 我的 ACL 关联是否正确?

我使用 li3_activerecord 将 Lithium 与 phpActiveRecord 一起使用。自从我回到 ORM 和协会已经有几年了,我对我当前的 ACL 设置有点困惑。

这是我的表格及其关联,为简洁起见进行了简化:

我得到了一些意想不到的结果,所以我首先要确定关联是否正确。基本上,一个用户只能拥有一个角色。资源由控制器、动作和可以在动作中执行的任何特定过程的组合定义。通过权限表向用户授予对资源的权限。

你觉得我写 ORM 关联的方式有什么问题吗?