laravel

Kaedah Laravel BadMethodCallException [find] tidak wujud

Kaedah Laravel BadMethodCallException [find] tidak wujud

Masalah

Saya telah berusaha mendapatkan model Eloquent dari pangkalan data tetapi terus masuk BadMethodCallExceptionMethod [cari] tidak wujud.

Inilah yang saya cuba sejauh ini:

Aplikasi ruang nama;
gunakan Illuminate \ Database \ Eloquent \ Model;
gunakan Aplikasi \ Organisasi;
Pengguna kelas memperluaskan Model
/ **
* Jadual pangkalan data yang digunakan oleh model.
*
* rentetan @var
* /
$ table dilindungi = 'pengguna';
/ **
* Atribut dikecualikan dari bentuk JSON model.
*
* array @var
* /
dilindungi $ hidden = array ('kata laluan');
organisasi fungsi awam ()

kembalikan $ this-> belongToMany (Organisasi :: class);

Ini adalah kelas pengguna asas yang disertakan dengan setiap projek Laravel baru. Setelah membuat pengguna baru, saya dapat melihat dengan jelas bahawa pengguna dengan ID3 ada di dalam pangkalan data. Walau bagaimanapun, apabila saya melakukan perkara berikut, saya berakhir dengan Kaedah BadMethodCallException [cari] tidak wujud

Pengguna kelas meluaskan BaseController
getUser fungsi awam ($ id)

$ my_user = Pengguna :: cari ($ id);
pandangan kembali ('pengguna.index ', array (' user '=> $ my_user));

Laluan fail Laluan Saya \ web.php:

Laluan :: get ('user / id', '[email dilindungi]');
Laluan :: get ('/', function ()

return View :: make ('test');
);

Penyelesaian

Terdapat beberapa masalah dengan pelaksanaan ini yang mungkin menyebabkan anda menerima Kaedah BadMethodCallException [cari] tidak wujud pengecualian.

Setelah melakukannya, anda seharusnya dapat mengakses model Aplikasi \ Pengguna anda seperti yang anda inginkan.

Penjelasan Lebih Lanjut (Untuk Tujuan Pendidikan Sahaja)

Seperti yang anda ketahui, pembangunan web tidak pernah bermaksud menjadi pertunjukan satu pihak. Anda biasanya boleh berkolaborasi dengan pembangun lain sekitar 90% masa. Agar projek berjaya, anda harus memastikan bahawa semua orang mengikuti peraturan pengkodan umum.

Mengenai peraturan berkenaan dengan konvensyen penamaan dan saya faham bahawa mengikuti konvensyen penamaan pasti memerlukan banyak usaha dan berpotensi membuang banyak masa pasukan sehingga semua orang dapat memahami dan mengikutinya. Ini amat sukar bagi pembangun baru yang menyertai pasukan.

Saya mencadangkan agar anda cuba membaca lebih banyak kod orang lain sebelum anda mula menulis kod anda, hanya untuk mengetahui amalan industri terbaik.

Beberapa peraturan adalah wajib dan ada yang diserahkan kepada pasukan untuk memutuskan bagaimana mereka ingin mendekati.

Melihat masalah dari atas, anda akan melihat bahawa semua kelas harus ditulis dalam StudlyCaps, jadi UserController dan bukan user_controller .

Dan ini adalah contoh peraturan wajib yang harus dipatuhi.

Sekarang, contoh yang dapat anda tentukan sebagai satu pasukan sebagai peraturan dalaman anda adalah bagaimana anda menamakan kelas, kaedah dan pemboleh ubah anda.

Sekiranya dijangkakan projek akan berkembang dari masa ke masa, anda pasti dapat mengharapkan banyak entiti yang berbeza dalam satu cara atau yang lain termasuk Pengguna sehingga penting agar anda tidak memberikan nama yang tidak jelas untuk kelas, kaedah dan pemboleh ubah anda.

Petua peribadi saya di sini adalah; jangan takut untuk mempunyai kelas atau nama kaedah yang lebih panjang. Sekiranya anda memerlukan komen yang menjelaskan kaedah anda, maka nama kaedah anda mungkin lebih baik.

Contohnya ialah jika anda perlu mendapatkan pengguna dari pangkalan data dengan beberapa syarat tambahan, mungkin mereka adalah pengguna yang berusia lebih dari 50 tahun, maka jangan beri nama kaedah anda sebagai pengguna . Kaedah yang lebih baik untuk menamakannya ialah getAllUsersOver50YearsOld .

Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...
Port Sumber Terbuka Mesin Permainan Komersial
Rekreasi enjin permainan sumber terbuka dan bebas platform boleh digunakan untuk bermain lama dan juga beberapa tajuk permainan yang baru-baru ini. Ar...
Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...