데이터베이스에 두 개의 테이블이 있고 테이블 중 하나가 내 계정 테이블과 연결되어 있습니다.펄 (Perl) 카탈리스트 : 결과 집합과 관계
그래서 Account.pm에 대한 내 스키마 결과에서 다음 줄을 추가했습니다.
__PACKAGE__->has_many('subjects', 'MyApp::DBIC::Schema::Subject', {'foreight.account_id' => 'self.account_id'});
그런 다음 내 컨트롤러에서 나는 이와 같은 검색을합니다.
$c->stash->{search_results} = $c->model('DB::Account')->search(
{ -or => [
firstname => {like => '%'.$search_term.'%'},
'subjects.subject_title' => {like => '%'.$search_term.'%'},
]
},
{
join => 'subjects',
rows => '3',
},
{
order_by => 'first name ASC',
page => 1,
rows => 10,
}
);
오류를 출력하지 않지만 내보기 파일에 결과를 출력하는 방법을 알 수 없습니다. 이것은 두 테이블 사이의 관계를 만드는 올바른 방법입니까?
내 목표 : search_term
을 제공하고 두 개의 테이블을 검색하여 결과를 뷰 파일에 출력하십시오. 내 SQL은 다음과 같습니다.
SELECT FROM Accounts,Subjects WHERE Accounts.firstname=$search_term OR Subjects.subject_title=$search_term LEFT JOIN Subjects ON Accounts.account_id=Subject.account_id
위의 설명과 같이 결과를 뷰 파일에 출력하려고합니다.
나는 Perl에 상당히 익숙하며 일부 문서는 그렇게 나에게 의미가 없다. 그래서 어떤 도움이나 조언을 부탁드립니다.
* 내가 * 어떻게 출력 내보기 파일에 결과를에 알아낼 수 없습니다 - 그건에 의해 이루어집니다'$ C -> 숨김 -> {검색 결과} = ...'. 그런 다음 어떻게 처리 할 것인가는 사용하는보기에 달려 있습니다. – Quentin
* 두 테이블 간의 관계를 만드는 올바른 방법입니까? * - 일반적으로 데이터베이스 스키마에서 관계를 정의합니다. 때로는 쿼리를 호출 할 때 여전히 조인에 대해 명시해야 할 수 있습니다. – Quentin
* My SQL은 다음과 유사합니다 * - yourapp_server를 실행하기 전에 환경 변수'DBIC_TRACE = 1'을 설정하여 SQL이 실제로 어떻게 보이는지 확인할 수 있습니다.pl' – Quentin