0
私のデータベース(mysql)テーブルはTIMESTAMPカラムを使用し、クエリで返されるときはいつでも、それらを "UNIX_TIMESTAMP(columnname)"としてクエリします。zend frameworkが自動的にクエリを変更します
これを達成するために、zendフレームワークでどのように簡単にクエリを変更しますか?
例えば、現在のコードは次のとおりです。
select = $this->select();
$select->where('user_id = ?',$user_id);
return $this->fetchAll($select);
これは、最終的には次のようになります。
select * from tablename where user_id = 42;
私は自動的にTIMESTAMP列を検索し、その結果得られるクエリを変更し、何かしたい:
select user_id,name,unix_timestamp(created) where user_id = 42;
を
私はこれを達成するためにMySQLのビューを使用することができます知っているが、私はむしろthaを避けるだろうt。
ありがとうございました。
RR
ご回答いただきありがとうございます。はい、それは明らかです。私が探しているのは、すべての列を指定せずにこれを行う方法です。タイムスタンプを持つすべてのテーブルのPHPコードの列のリストを維持する必要のない汎用ソリューションが必要です。 – russellr
ああ。申し訳ありませんが、私は誤解しました。 Doctrine2のようなものを見ることをお勧めします。注釈を使用してPHPクラスをMySQLにマップします。フィールドに注釈を付けた方法に応じて、正しい照会が生成されます。 Doctrine2 ORMは、TIMESTAMP MySQLタイプとPHP DateTimeの間のマッピングを自動的にサポートします。あなたが欲しいと思っているのは残念なことですが、一度それを掛ければ、人生は楽になります。 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html –