CakePHP: 3.1.4
Run Code Online (Sandbox Code Playgroud)
我在我的表中有一个自定义查找程序功能,从本月获取所有记录,行"费用"保持小数值.
在视图中,我想用变量显示此选择中的费用值之和.我试图在" 使用SQL函数 "一书的帮助下解决这个问题, 但我不明白如何在我的案例中正确使用语法.
表中的自定义查找器:
class TicketsTable extends Table
{
// find all tickets created this month
public function findThismonths(Query $query, array $options){
// get first and last day of month
$first_day_this_month = date('m-01-Y');
$last_day_this_month = date('m-t-Y');
$query
->select(['id', 'created', 'fee', 'extend_fee'])
->where([ function($exp) {
$first_day_this_month = date('Y-m-01');
$last_day_this_month = date('Y-m-t');
return $exp->between('Tickets.created', $first_day_this_month, $last_day_this_month, 'date');
}]);
return $query;
}
Run Code Online (Sandbox Code Playgroud)
我可以很容易地得到记录的数量,但我不明白这是一个总和.
控制器:
class CashpositionsController extends AppController
{
public function overview()
{
$tickets = TableRegistry::get('Tickets');
$thismonths = $tickets->find('thismonths'); …Run Code Online (Sandbox Code Playgroud) 我现在搜索高低,但我无法弄清楚如何让它工作:
我需要获取其类名包含我用变量传递的数字的元素.
为了更好地理解:这是在图库中的"点击"事件内.每当单击img时,我搜索src,查看该字符串包含的数字,然后想要找到其类包含相同数字的匹配p.因此,我可以将匹配的文本操作到当前显示的图片(因为我使用的插件剥离了任何id或类,我只能通过其源名称识别图片).
到目前为止,如果我直接将数字作为字符串输入,它确实有效.像这样:
var team_t = $(this).find("img").attr("src");
for(n = 1; n <=6; n++ ){
if(team_t.indexOf(n) != -1)
{
$('#text_content').find("p[class*='3']").css("background-color", "red");
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望它得到变量n所包含的数字,而不是"3".我尝试了这个,但它不起作用:
$('#text_content').find("p[class*=' + n + ']").css("background-color", "red");
Run Code Online (Sandbox Code Playgroud)
实际上它不适用于我试图传递的任何变量.我也看到并尝试过使用contains()或hasClass()等的示例..但对我来说没什么用.我对语法并不十分熟悉.
我怎么写这个,所以它把变量作为一个字符串?
如果我发出警报(n)它会显示正确的数字,所以这不是问题所在.
我有两张桌子artists并且pictures有artist hasMany paintings关系.
而不是为每个显示相关图片的艺术家提供单独的view.ctp.我只想在index.ctp文件中显示所有艺术家列出的每个相关图片(ID列表).
在阅读了食谱和大量的线程后,我完全感到困惑,不明白我该怎么做.(我还是PHP和Cakephp的新手)
在view( )单一艺术家的功能中,我可以像这样轻松获得相关图片:
控制器:ArtistsController.php
..
public function view($id=null)
{
$artist = $this->Artists->get($id, [
'contain' => ['Paintings']
])
...
}
Run Code Online (Sandbox Code Playgroud)
然后通过执行以下操作获取相应view.ctp中的所有内容:
view.ctp
<?php foreach ($artist->paintings as $paintings): ?>
<ul><li> <?= h($paintings->id) ?> </li></ul>
....
<?php endforeach; ?>
Run Code Online (Sandbox Code Playgroud)
但是,如何为表中列出的每个艺术家的index.ctp/index()函数执行类似的操作?所以我基本上可以这样:
<?php foreach ($artists as $artist): ?>
<tr><td> <?= h($artist->name) ?> </td></tr>
<tr><td> <?php foreach ($artist->paintings as $paintings): ?>
<ul><li> <?= h($painting->id) ?> </li></ul>
<?php endforeach; ?>
</tr></td> …Run Code Online (Sandbox Code Playgroud)