snipt

Ctrl+h for KB shortcuts

PHP

Propel add COUNT column in query

<?php

// query
$users = UserQuery::create('u')
    ->withColumn('COUNT(*)', 'ProfileCount')
    ->joinWith('u.UserProfile p')
    /* your query */
    ->groupBy('u.Id')
->find();

// in your PHP code
$users[0]->getProfileCount(); // see "withColumn" above, second argument.

// note
// prefer to make a COUNT(column_name) rather than a COUNT(*), better perfs.

Description

Add a COUNT column aggregator with Propel, in PHP.
https://snipt.net/embed/c7c305f01a2a7a96886a5af999ed465a/
/raw/c7c305f01a2a7a96886a5af999ed465a/
c7c305f01a2a7a96886a5af999ed465a
php
PHP
15
2019-06-20T03:10:05
True
False
False
Feb 14, 2014 at 06:06 AM
/api/public/snipt/113687/
propel-add-count-column-in-query
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="cp">&lt;?php</span> </span><span id="L-2"><a name="L-2"></a> </span><span id="L-3"><a name="L-3"></a><span class="c1">// query</span> </span><span id="L-4"><a name="L-4"></a><span class="nv">$users</span> <span class="o">=</span> <span class="nx">UserQuery</span><span class="o">::</span><span class="na">create</span><span class="p">(</span><span class="s1">&#39;u&#39;</span><span class="p">)</span> </span><span id="L-5"><a name="L-5"></a> <span class="o">-&gt;</span><span class="na">withColumn</span><span class="p">(</span><span class="s1">&#39;COUNT(*)&#39;</span><span class="p">,</span> <span class="s1">&#39;ProfileCount&#39;</span><span class="p">)</span> </span><span id="L-6"><a name="L-6"></a> <span class="o">-&gt;</span><span class="na">joinWith</span><span class="p">(</span><span class="s1">&#39;u.UserProfile p&#39;</span><span class="p">)</span> </span><span id="L-7"><a name="L-7"></a> <span class="cm">/* your query */</span> </span><span id="L-8"><a name="L-8"></a> <span class="o">-&gt;</span><span class="na">groupBy</span><span class="p">(</span><span class="s1">&#39;u.Id&#39;</span><span class="p">)</span> </span><span id="L-9"><a name="L-9"></a><span class="o">-&gt;</span><span class="na">find</span><span class="p">();</span> </span><span id="L-10"><a name="L-10"></a> </span><span id="L-11"><a name="L-11"></a><span class="c1">// in your PHP code</span> </span><span id="L-12"><a name="L-12"></a><span class="nv">$users</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">-&gt;</span><span class="na">getProfileCount</span><span class="p">();</span> <span class="c1">// see &quot;withColumn&quot; above, second argument.</span> </span><span id="L-13"><a name="L-13"></a> </span><span id="L-14"><a name="L-14"></a><span class="c1">// note</span> </span><span id="L-15"><a name="L-15"></a><span class="c1">// prefer to make a COUNT(column_name) rather than a COUNT(*), better perfs.</span> </span></pre></div> </td></tr></table>
count, propel, query