ホームページ > バックエンド開発 > PHPチュートリアル > [ThinkPHP]関連クエリの問題

[ThinkPHP]関連クエリの問題

WBOY
リリース: 2016-06-23 13:22:13
オリジナル
1291 人が閲覧しました

ThinkPHP フレームワークを使用して開発されました

Personalapply テーブルは User モデルに関連付けられています:
'personalapply' =>array(
'mapping_type'=>self::HAS_MANY,
'foreign_key'=> 'uid ',
'MAPPING_NAME' = & GT; 'Personalapply',
),


コントローラー: フロントエンドによって受け取られたフィールドに従ってクエリ スクリーニング (フィールドは Personalapply です)
// のアプリケーション情報を取得しますパーソナル センター
$limit_year = $ _Get [ 'limit_year']; - $ applymap['loanuse'] = $loanuse
$userapply=$user->relation('personalapp; ly')->どこ($applymap)->select();//ユーザー テーブルのフィールドのみをクエリできます。personalapply テーブルのフィールドをクエリすることはできません。

質問: ユーザー テーブルをpersonalapply テーブルに関連付けた後、どのようにクエリを実行できますか?データは変数に基づいて個人的に適用され、関連付けられた後にクエリ データを取得します。モデル内の条件はハードコーディングのみ可能です。変数を渡すことはできません。 (私も初心者でマニュアルを読みましたが、マニュアルには載っていませんでした。すべての機能を知っているわけではないと思います。ThinkPHP が動作しない場合は、PHP SQL クエリを使用します。ThinkPHP の実装方法を指摘してください。 THX!!)



ディスカッションに返信 (解決策) クエリにはビュー モデルを使用することをお勧めします: カスタム モデルを作成します (TP3.2 バージョンの場合、名前空間を導入することを忘れないでください)
class UserPersonalapplyViewModel extends ViewModel{	public $viewFields = array(		'User'=>array(			'User表需要取的字段1',			'字段2',			'字段3'		),		'personalapply'=>array(			'personalapply表需要取得字段1',			'字段2',			'字段3',			'_on'=>'User.主键=personalapply.uid',			'_type'=>'LEFT'		),	);} 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

それからコントローラーでインスタンス化します このモデルを変換してデータを取得するだけです。

$UserPersonal = D('UserPersonalapplyViewModel');
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー



クエリには View Model を使用することをお勧めします: カスタム モデルを作成します (TP3.2 バージョンの場合は、名前空間を導入することを忘れないでください)
class UserPersonalapplyViewModel extends ViewModel{	public $viewFields = array(		'User'=>array(			'User表需要取的字段1',			'字段2',			'字段3'		),		'personalapply'=>array(			'personalapply表需要取得字段1',			'字段2',			'字段3',			'_on'=>'User.主键=personalapply.uid',			'_type'=>'LEFT'		),	);} 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

次に、コントローラーでこのモデルをインスタンス化しますデータを取得できます。

$UserPersonal = D('UserPersonalapplyViewModel');
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー




クエリには View Model を使用することをお勧めします: カスタム モデルを作成します (TP3.2 バージョンの場合は、名前空間を導入することを忘れないでください)

class UserPersonalapplyViewModel extends ViewModel{	public $viewFields = array(		'User'=>array(			'User表需要取的字段1',			'字段2',			'字段3'		),		'personalapply'=>array(			'personalapply表需要取得字段1',			'字段2',			'字段3',			'_on'=>'User.主键=personalapply.uid',			'_type'=>'LEFT'		),	);} 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


次に、このモデルをコントローラーでデータを取得するだけです。

$UserPersonal = D('UserPersonalapplyViewModel');
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー




クエリには View Model を使用することをお勧めします: カスタム モデルを作成します (TP3.2 バージョンの場合は、名前空間を導入することを忘れないでください)

class UserPersonalapplyViewModel extends ViewModel{	public $viewFields = array(		'User'=>array(			'User表需要取的字段1',			'字段2',			'字段3'		),		'personalapply'=>array(			'personalapply表需要取得字段1',			'字段2',			'字段3',			'_on'=>'User.主键=personalapply.uid',			'_type'=>'LEFT'		),	);} 
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


次に、このモデルをコントローラーでデータを取得するだけです。

rree
返信遅くなってごめんなさい!あなたの方法を試してみます!どうもどうも!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート