私はアーカイブページを作成していますが、結果を1年ごとに取得してフィルタリングするのに問題があります。
ページタイプが
private static $db = array(
"SubType" => "Enum(array('2013', '2014', '2015', '2016', '2017', '2018'))"
);
テンプレートは、私はそれを超える機能を使用する場合は、すべての映画を動作しますが、表示さ
public function GetFilms()
{
$films = DataObject::get("Film");
return $films;
}
機能GetFilmsを呼び出すを表示すべき年を選択するドロップダウンを持っています。
私はそのが渡されて一年を使用してフィルタリングすることを変更しようと、
public function GetFilms($SubType)
{
$films = DataObject::get("Film","'Year' = '$SubType'");
return $films;
}
ページは、もはやフィルムのいずれかを表示します。誰かが私が間違っていることを知っていますか?ここで
は結果を表示するためのコードです、
<% loop GetFilms($SubType) %>
<div class="film" data-title="$Title">
<a href="$Top.Link?film=$ID">
<div class="inner">
<h3 class="filmTitle">$Title</h3>
<img class="filmImg" src="$FilmImage.URL" alt="$Title" />
</div>
</a>
</div>
<% end_loop %>
はあなたの助けをありがとう!
私を助けてくれてありがとう! 私はvar_dumpを実行し、正しい日付を受け取りました。私もraw SQLを使ってみました。 $ films = DB :: query( "SELECT * FROM' film' WHERE 'Year' = '2016'") - > value(); しかし、私は同じ問題に遭遇し、映画は現れません。私はphpmyadminでその正確なSQLを実行し、結果を返しました。 URLに/?showqueriesを追加してクエリをチェックしようとしましたが、うまく見えます。 – Trekin
あなたのカラムが 'Year'(MySQLの予約語)と呼ばれることがあるのだろうかと思います。 –
私はカラムを変更しました'FilmYear'に変更し、機能を更新しました。 DataObject :: get( "Film"、 "FilmYear '=' $ SubType '");動作しません。 DB :: query( "SELECT * FROM' film' WHERE 'FilmYear' = '2016'") - > value();動作しません。 最初の提案は、Film :: get() - > filter(['FilmYear' => $ SubType])を返します。働く私は他の人がそうでないときにそれがなぜ働くのかという手がかりを持っていません。 – Trekin