저는 아카이브 페이지를 만들고 있는데 일년 내내 결과를 가져오고 필터링하는 데 문제가 있습니다.
페이지 유형은 템플릿은 함수 GetFilms에게 호출
private static $db = array(
"SubType" => "Enum(array('2013', '2014', '2015', '2016', '2017', '2018'))"
);
표시해야하는 연도를 선택하는 드롭 다운을 가지고
public function GetFilms()
{
$films = DataObject::get("Film");
return $films;
}
가 작동하지만 모든 영화를 위에 나는 기능을 사용하는 경우 .
나는 그것이 전달 된 연도를 사용하여 필터링을 수정하려고
, 페이지가 더 이상 영화 중 하나를 표시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를 완료했으며 올바른 날짜를 받았습니다. 나는 또한 원시 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'영화 'WHERE'FilmYear' ='2016 '") -> value(); 작동하지 않습니다. 하지만 초기 제안은 Film :: get() -> filter ([ 'FilmYear'=> $ SubType])를 반환합니다. 공장. 나는 다른 사람들이하지 않을 때 그것이 작동하는 이유를 알지 못한다. – Trekin