<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Функция getListCount с условием]]></title>
		<link>http://forum.readyscript.ru/topic/321/funktsiya-getlistcount-s-usloviem/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/321/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Функция getListCount с условием».]]></description>
		<lastBuildDate>Tue, 07 Apr 2015 13:38:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Функция getListCount с условием]]></title>
			<link>http://forum.readyscript.ru/post/1147/#p1147</link>
			<description><![CDATA[<p>Спасибо огромное, все реализовал. Пагинатор отлично работает <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Дмитрий)]]></author>
			<pubDate>Tue, 07 Apr 2015 13:38:58 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1147/#p1147</guid>
		</item>
		<item>
			<title><![CDATA[Re: Функция getListCount с условием]]></title>
			<link>http://forum.readyscript.ru/post/1146/#p1146</link>
			<description><![CDATA[<p>А посмотреть какой итоговый запрос у Вас получается можно так:</p><div class="codebox"><pre><code>var_dump(\RS\Orm\Request::make()
    -&gt;from(new Orm\Product, &#039;A&#039;)
    -&gt;join(new Orm\Second, &#039;A.id = B.product_id&#039;, &#039;B&#039;)
    -&gt;where(&#039;A.num &gt; 0&#039;)
    -&gt;toSql());</code></pre></div><p>или ещё проще:</p><div class="codebox"><pre><code>echo \RS\Orm\Request::make()
    -&gt;from(new Orm\Product, &#039;A&#039;)
    -&gt;join(new Orm\Second, &#039;A.id = B.product_id&#039;, &#039;B&#039;)
    -&gt;where(&#039;A.num &gt; 0&#039;);</code></pre></div><p>А вообще лучше всего пользоваться современными редакторами для подсветки подсказок. Я например использую phpED 9. И тогда можно будет получить подсказки с описанием методов легко.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Tue, 07 Apr 2015 08:32:08 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1146/#p1146</guid>
		</item>
		<item>
			<title><![CDATA[Re: Функция getListCount с условием]]></title>
			<link>http://forum.readyscript.ru/post/1145/#p1145</link>
			<description><![CDATA[<p>Если необходимо выполнить следующий запрос:</p><div class="quotebox"><blockquote><p>SELECT <strong>COUNT(*)</strong> <br />FROM <strong>products as A</strong><br />INNER JOIN <strong>second as B</strong> ON <strong>A.id = B.product_id</strong><br />WHERE <strong>A.num</strong> &gt; 0;</p></blockquote></div><p>Можно сделать это так:</p><p><strong>1 способ</strong>. С помощью запроса через \RS\Orm\Request</p><div class="codebox"><pre><code>  $result = \RS\Orm\Request::make()
    -&gt;from(new Orm\Product, &#039;A&#039;)
    -&gt;join(new Orm\Second, &#039;A.id = B.product_id&#039;, &#039;B&#039;)
    -&gt;where(&#039;A.num &gt; 0&#039;)
    -&gt;count();</code></pre></div><p>т.е. можно создать метод в вашей модели, например getSomethingCount() и реализовать в нем такой запрос.</p><br /><p><strong>2 способ</strong>. С помощью стандартных \Catalog\Model\Api и метода getListCount();</p><div class="codebox"><pre><code>$product_api = new \Catalog\Model\Api();
$product_api-&gt;queryObj()
    -&gt;join(new Orm\Second, &#039;A.id = B.product_id&#039;, &#039;B&#039;)
    -&gt;where(&#039;A.num &gt; 0&#039;);
  
$result = $product_api-&gt;getListCount();</code></pre></div><p>т.е. метод queryObj() возвращает текущий объект \RS\Orm\Request, который загружен в API, соответственно там по умолчанию уже присутствует часть запроса</p><p>\RS\Orm\Request::make()<br />&nbsp; &nbsp; -&gt;from(new Orm\Product, &#039;A&#039;)</p><p>и вам остается только добавить недостающую часть.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 07 Apr 2015 08:15:10 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1145/#p1145</guid>
		</item>
		<item>
			<title><![CDATA[Функция getListCount с условием]]></title>
			<link>http://forum.readyscript.ru/post/1144/#p1144</link>
			<description><![CDATA[<p>Добрый вечер, возникла необходимость подсчета количества записей для пагинатора. На сколько я понимаю, в вашем движке есть функция getListCount для этого. Собственно возник вопрос по ее использованию.<br />Как добавить для нее условие со связью с другой таблицей. Например есть таблица Product с ее полями id, num, и т.д. и моя таблица Second с полями id, id_product, name (Поле связи соответственно id_product). И необходимо узнать количество записей в таблице Second для которых значение Product.num&gt;1.<br />Связь получается один ко многим, т.е. одному товару может соответствовать несколько записей в таблице Second, а записи из таблицы Second, соответствует только одна запись из таблицы Product.</p><p>Вот например, в контроллере myorders присутствует эта функция: $this-&gt;api-&gt;getListCount(). Я понимаю, что она считает количество заказов данного пользователя. А как ей воспользоваться со связью с другой таблицей не могу понять. Пробовал написать обыкновенный ORM запрос, но опять же не понял как пользоваться JOIN&#039;ом для такого запроса.&nbsp; </p><p>Заранее огромнейшее спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Дмитрий)]]></author>
			<pubDate>Tue, 07 Apr 2015 00:38:17 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1144/#p1144</guid>
		</item>
	</channel>
</rss>
