私は$ belongsToカテゴリの関係を持つドキュメントモデルを持っていますが、すべてうまくいきますし、ドキュメントにカテゴリを割り当ててフロントエンドにリストすることはできますが、 withはカテゴリ別の結果をフィルタリングしています。カテゴリをLaravelでカテゴリ別にフィルタリングする
私は3つのカテゴリと3つのcol-md-4カラムを持っていますが、各カラムにはドキュメントがカテゴリ別にリストされ、フィルタリングされていなければなりません。
{% set documents = __SELF__.documents %}
<ul class="record-list list-unstyled ">
{% for document in documents %}
<li class="ul-text-black">
{{document.name }}
</li>
{% endfor %}
</ul>
マイドキュメントのコンポーネントコード:
マイdocuments.defaultコンポーネントファイルは、次のようになります
<?php namespace Myplugin\Documents\Components;
use Cms\Classes\ComponentBase;
use Myplugin\Documents\Models\Document;
class Documents extends ComponentBase
{
public function componentDetails(){
return [
'name' => 'Documents List',
'description' => 'Custom Component to list documents by category'
];
}
public function defineProperties(){
return [
'results' => [
'title' => 'Number of Documents',
'description' => 'How many documents do you want to display?',
'default' => 24,
'validationPattern' => '^[0-9]+$',
'validationMessage' => 'Only numbers allowed'
],
'sortOrder' => [
'title' => 'Sort Documents',
'description' => 'Sort documents',
'type' => 'dropdown',
'default' => 'name asc',
]];
}
public function getSortOrderOptions(){
return [
'name asc' => 'Name (ascending)',
'name desc' => 'Name (descending)',
];
}
public function onRun()
{
$this->documents = $this->loadDocuments();
}
protected function loadDocuments(){
$query = Document::all();
if ($this->property('sortOrder') == 'name asc') {
$query = $query->sortBy('name');
}
if ($this->property('sortOrder') == 'name desc') {
$query = $query->sortByDesc('name');
}
if ($this->property('results') > 0) {
$query = $query->take($this->property('results'));
}
return $query;
}
public $documents;
}
マイページは、私が表示されますどのようにこの
<div class="row">
<div class="col-md-4">
<p class="text-black">
<strong>FINANCIAL</strong>
</p>
{% component 'documents' %} // Only documents from financial category
</div>
<div class="col-md-4">
<p class="text-black">
<strong>ANALYTICS</strong>
</p>
{% component 'documents' %} // Only documents from analytics category
</div>
<div class="col-md-4">
<p class="text-black">
<strong>INVESTMENT</strong>
</p>
{% component 'documents' %} // Only documents from investment category
</div>
のように見えますドキュメントリストをフィルタリングしますが、カテゴリ別にフィルタリングしますか?このようなもの? {%部分「ドキュメント・財務」カテゴリ=「金融」%}
カテゴリ別にグループ化して表示するには、どのようにフィルタリングしますか? –
あなたの質問から、それはあなたのコンポーネントの別のインスタンスを各カテゴリに使用しているかのように見えますか?それともそれじゃないの? – fubar
カテゴリには1つのコンポーネントがあります。 OctoberCMSとコンポーネント/ページのMVCへのアプローチは初めてです。 –