データベースに 2 つのテーブルがあり、そのうちの 1 つが Accounts テーブルに関連付けられています。
そのため、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,
}
);
エラーは出力されませんが、ビュー ファイルに結果を出力する方法がわかりません。これは、2 つのテーブル間の関係を作成する正しい方法ですか?
私の目標: を提供しsearch_term
、2 つのテーブルを検索し、結果をビュー ファイルに出力します。私の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 にかなり慣れていないので、ドキュメントのいくつかはまだあまり意味がありません。そのため、ヘルプやヒントをいただければ幸いです。