idiORM クラスを使用して問題が発生しています。(ドキュメントはこちら: http://idiorm.readthedocs.org/en/latest/ )
元のクエリをさらに処理するために保持しながら、特定のクエリの数を取得しようとしているので、元のクエリを2番目の変数にコピーしただけですが、count()
メソッドを実行するとすぐに、すべてが他の変数にコピーされるようです.
たとえば、クエリを作成し、返された ORM オブジェクトを変数に保存して、次の$ormResults
ようにコピーします$copy
。
$ormResults = ORM::for_table('department')->where('company', '4');
$this->_orginalResults = $ormResults;
// Copy the ORM object into $copy
$copy = $ormResults;
$this->resultCount = $copy->count();
ここまでは正常に動作し、予想されるカウント結果は正しく に格納されてい$this->resultCount
ます。ただし、(今まで) 未使用の変数を var ダンプすると、まったく使用していないので困惑するプロパティ$this->_orginalResults
も含まれています。count()
protected '_resultColumns' =>
array
0 => string 'COUNT(*) AS `count`' (length=19)
実行しようとすると問題が発生し$this->_originalResults->findMany();
ます。これは、count()
メソッドが ORM オブジェクトを返すためですか? 私が知る限り、PHPコードは上向きに移動しません..そうですか?
要約:
$test = ORM::forTable('departments')->where('company', '8');
$test2 = $test;
// Works
var_dump($test->count());
// Fails
var_dump($test2->findMany());
ただし、これは完全に正常に機能します。
$test = ORM::forTable('departments')->where('company', '8');
$test2 = ORM::forTable('departments')->where('company', '8');
var_dump($test->count());
var_dump($test2->findMany());
洞察/助けをいただければ幸いです。