2016-04-10 13 views
1

私はカルコンボルトで数えて問題があります。私はcategoryと呼ばれるテーブルを持って、私は2つの列idcnameを持って、またテーブルのブログを持って、列categoryがあります。私は各カテゴリーにどれくらいの投稿があるかを示したいと思う。
投稿をブログテーブルに挿入すると、カテゴリの列にそのカテゴリidが挿入されます。最初に私のちょうどこのようなすべてのカテゴリのリストを取得:ファルコン数(ボルト)

[controller] 
$categories = Category::find(); 
$this->view->setVar('category', $categories); 
$cx = Blogs::find(); 
$this->view->setVar('cates',$cx); 

[Volt] 
{% for categories in category %} 
<a href="blog/category/{{categories.cname}}" class="tags">{{ categories.cname }} 
<span>[ 
{% for cx in cates %} 
    {%if cx.category === categories.id %} 
     <?php echo(count($cx->category)); ?> 
    {% endif %} 
{% endfor %} 
]</span></a> 
{% endfor %} 

その「1 1 1」などのレンダリングを「1」または「1」が、それは「「3」または「2」またはようにレンダリングする必要があり1 "私の間違いは何ですか?

私はまた、このように試みたが、期待される出力を取得できませんでした:

{% for categories in category %} 
<a href="blog/category/{{categories.cname}}" class="tags">{{ categories.cname }} 
<span>[ 
{% for cx in cates %} 

{%if cx.category === categories.id %} 
{% if loop.first %} {{ loop.length }} {% endif %} 

{% endif %} 

{% endfor %} 
]</span></a> 
{% endfor %} 
+0

あなたの例に従うのは難しいです。 – yergo

答えて

2

あなたはPhalconであなたのモデル間のあなたの関係を定義したことがありますか? もしそうなら、あなたは文書から各カテゴリの記事の合計金額を照会するコマンドに建て

例使用することができます:あなたはまた示す整数を返すために、「カウント」の接頭辞を使用することができます

を関連レコードの数:

$robot = Robots::findFirst(2); 
echo "The robot has ", $robot->countRobotsParts(), " parts\n"; 

私はボルトのテンプレートで多くの経験を持っていないが、私はそれのようなものだろうと思います。

{% for categories in category %} 
<a href="blog/category/{{categories.cname}}" class="tags">{{ categories.cname }} 
<span>[ 
    {{ categories.countBlogs }} 
]</span></a> 
{% endfor %} 

を参照してください:https://docs.phalconphp.com/en/latest/reference/models.html#taking-advantage-of-relationships

UPDATE - [モデル:カテゴリー]モデルの関係

public function initialize() 
{ 
    // id => primary key name of the Category table 
    // Blogs => name of the table you want to create a relationship with 
    // category => name of the foreign key column in your relationship table 
    $this->hasMany('id', 'Blogs', 'category'); 
} 

[モデル:ブログ]

public function initialize() 
{ 
    // category => blog column name which refers to the ID in the Category table 
    // Category => name of the Category table 
    // id => name of the primary key column in the Category table 
    $this->belongsTo('category', 'Category', 'id'); 
} 
+0

先生、私はそれを正しく理解できません。私のコード例として作業コードを教えてください。ここでは、私のブログテーブルからすべてをレンダリングしようとしている間違ったものがあり、カテゴリテーブルのidカラムと一致するカテゴリカラムを数えたいと思うかもしれません。 PhalconException ::メソッド 'initialize'がモデル 'Category'に存在しません – munaz

+0

'parent :: initialize();'行を削除してください。それはその後動作しますか? – Timothy

0

ませ卿、動いていない。しかし、私はちょうどこのような私の問題を解決しました:

[controller] 
$categories = Category::find(); 
$this->view->setVar('category', $categories); 

[volt] 

{% for categories in category %} 
<a href="blog/category/{{categories.cname}}" class="tags">{{ categories.cname }} 
<span>[ 
<?php 
$catcount = $this->modelsManager->executeQuery("SELECT Blogs.category FROM Blogs WHERE Blogs.category = $categories->id");echo(count($catcount)); 
?> 
]</span></a> 
{% endfor %} 

今期待通りに働いています。ここで私は関係イオンモデルを作っていません。それは大丈夫です。お願いします! Thnx

+0

あなたは本当にファルコンの力をそこで使っているわけではありません。さらに、そのクエリをボルトで使用することは避けてください。MVC構造には適していません。 – Timothy

関連する問題