Pencarian CakePHP mengembalikan hasil dengan bidang yang hilang

Saya perlu mendapatkan info User saya dan kapan saya menelepon

$this->User->find('first', array('conditions' => array('User.id' => $user_id)));

hasilnya hanya berisi beberapa bidang.

Saat ini saya telah memperbarui skema basis data. Di server dev, ini berjalan dengan baik dan mengembalikan semua bidang tetapi di server produksi, bidang baru tersebut tidak ada. Server-server tersebut memiliki konfigurasi yang persis sama.

Saya sudah mencoba menghapus konten app/tmp/cache/models dan saya menggunakan mesin File untuk caching.

File schema.php sudah diperbarui, konten file di app/tmp/cache/models menunjukkan bahwa kolom tersebut ada tetapi saya belum dapat mengambilnya di server produksi. Satu-satunya perbedaan mungkin adalah basis data dan tingkat debug. Saya sudah mencoba menyalin database dan menggunakannya dengan server dev dan itu berfungsi dengan baik.

Saya jelas tidak bisa mengatur debug ke 2 di server produksi.

Apakah ada di antara Anda yang mengalami perilaku serupa?

PS Saya menggunakan Kue 2.3.3


person Elwhis    schedule 15.05.2013    source sumber
comment
Apakah Anda yakin tidak mendapatkan hasil cache? Jika Anda menambahkan catatan baru, apakah Anda menemukannya?   -  person Chris    schedule 15.05.2013
comment
Menurutku Chris benar. hapus konten tmp/cache/models dan Anda akan dapat beroperasi kembali.   -  person timstermatic    schedule 15.05.2013


Jawaban (3)


Jawabannya sebenarnya cukup sederhana. Saya harus menghapus bukan hanya isi app/tmp/models, tapi apa yang sebenarnya membuatnya berfungsi adalah menghapus isi app/tmp/persistent.

person Elwhis    schedule 15.05.2013
comment
Anda juga dapat mengaktifkan debug - ini akan memaksanya untuk mendapatkan cache baru setiap saat. - person Dave; 15.05.2013
comment
Yap, itu pasti akan menyelesaikannya, tetapi karena ini adalah server produksi, hal ini tidak mungkin dilakukan - person Elwhis; 16.05.2013
comment
Itu hanya PHP - lakukan pemeriksaan ?debug=1 dan IP yang valid - jika demikian, setel debug ke 2 - jika tidak 1...sesuatu seperti itu. Jika Anda berurusan dengan rekening bank atau semacamnya, itu mungkin bukan ide bagus, tetapi untuk sebagian besar situs, menurut saya ini ideal, karena Anda dapat lebih mudah mengidentifikasi masalah, antara lain. - person Dave; 16.05.2013

Jawaban saya sedikit berbeda dengan @Elwhis. Saya menggunakan Kue 2.4.5. Bagi saya tidak ada direktori app/tmp/models atau app/tmp/persistent. models dan persistent keduanya di bawah app/tmp/cache. Sama seperti @Elwhis, mencari di direktori app/tmp/cache/models menunjukkan kolom yang hilang, sehingga membingungkan.

Untuk memperbaikinya, saya menghapus semua file dari app/tmp/cache/persistent. Perhatikan bahwa jika Anda menghapus direktori itu sendiri, Anda akan mendapatkan error 500 dari CakePHP.

Saya sarankan menambahkan penghapusan file di direktori itu ke proses penerapan Anda.

person Tyler Collier    schedule 11.04.2014

Elwhis: Jawabannya sebenarnya cukup sederhana. Saya harus menghapus tidak hanya konten app/tmp/models, tetapi yang sebenarnya membuatnya berfungsi adalah menghapus konten app/tmp/persistent.

Ini masih berfungsi pada CakePHP 3, ini memperbaiki masalah saya!

Pembaruan 1

Ada cara sederhana untuk membersihkan cache dengan Bake CLI Tool, berikut ini:

Perintah Cache Shell

Untuk menghapus satu konfigurasi cache:

cache bin/kue bersih

Untuk menghapus semua konfigurasi cache:

bin/cache kue clear_all

person dixavier27    schedule 22.06.2019
comment
Tolong jangan tambahkan terima kasih sebagai jawaban. Mereka sebenarnya tidak memberikan jawaban atas pertanyaan tersebut, dan dapat dianggap sebagai kebisingan oleh pengunjung berikutnya. Setelah Anda mendapatkan cukup reputasi, Anda akan mendapatkan hak istimewa untuk memberikan suara positif pada jawaban yang Anda suka. Dengan cara ini pengunjung pertanyaan di masa mendatang akan melihat jumlah suara yang lebih tinggi pada jawaban tersebut, dan penjawab juga akan diberi poin reputasi. Lihat Mengapa pemungutan suara itu penting. - person Matthew; 22.06.2019