laravel

Metode Laravel BadMethodCallException [temukan] tidak ada

Metode Laravel BadMethodCallException [temukan] tidak ada

Masalah

Saya telah mencoba untuk mendapatkan model Eloquent dari database tetapi terus masuk BadMethodCallExceptionMethod[temukan] tidak ada.

Inilah yang saya coba sejauh ini:

Aplikasi ruang nama;
gunakan Illuminate\Database\Eloquent\Model;
gunakan Aplikasi\Organisasi;
class Pengguna memperluas Model
/**
* Tabel database yang digunakan oleh model.
*
* @var string
*/
dilindungi $tabel = 'pengguna';
/**
* Atribut dikecualikan dari formulir JSON model model.
*
* @var array
*/
protected $hidden = array('password');
organisasi fungsi publik()

return $this->belongsToMany(Organization::class);

Ini adalah kelas Pengguna dasar yang hadir dengan setiap proyek Laravel baru. Setelah membuat pengguna baru, saya dapat dengan jelas melihat bahwa pengguna dengan ID3 ada di database. Namun, ketika saya melakukan hal berikut, saya berakhir dengan Metode BadMethodCallException [temukan] tidak ada

class Pengguna memperluas BaseController
fungsi publik getUser($id)

$my_user = Pengguna::find($id);
tampilan kembali('pengguna.indeks', array('pengguna' => $pengguna_saya));

Rute file My Routes\web.php :

Rute::get('pengguna/id', '[dilindungi email]');
Rute::get('/', fungsi()

kembali Lihat::make('test');
);

Larutan

Ada beberapa masalah dengan penerapan ini yang mungkin menyebabkan Anda menerima Metode BadMethodCallException [temukan] tidak ada pengecualian.

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

Penjelasan Lebih Lanjut (Hanya Untuk Keperluan Pendidikan)

Seperti yang Anda ketahui, pengembangan web tidak pernah dimaksudkan untuk menjadi pertunjukan satu orang. Anda biasanya dapat mengharapkan untuk berkolaborasi dengan pengembang lain sekitar 90% dari waktu. Agar proyek berhasil, Anda harus memastikan bahwa semua orang mengikuti aturan pengkodean umum.

Salah satu aturannya adalah tentang konvensi penamaan dan saya mengerti bahwa mengikuti konvensi penamaan yang pasti membutuhkan banyak usaha dan berpotensi membuang banyak waktu tim sampai semua orang dapat memahami dan mengikutinya. Ini sangat sulit bagi pengembang baru yang bergabung dengan tim.

Saya sarankan Anda mencoba membaca lebih banyak kode orang lain sebelum Anda mulai menulis kode Anda, hanya untuk memahami praktik industri terbaik.

Beberapa aturan bersifat wajib dan beberapa diserahkan kepada tim untuk memutuskan bagaimana mereka ingin melakukan pendekatan.

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

Dan ini adalah contoh aturan wajib untuk diikuti.

Sekarang, contoh dari apa yang Anda sebagai tim dapat definisikan sebagai aturan internal Anda adalah bagaimana Anda menamai kelas, metode, dan variabel Anda.

Jika proyek diharapkan tumbuh dari waktu ke waktu, Anda tentu dapat mengharapkan banyak entitas berbeda yang dalam satu atau lain cara menyertakan Pengguna sehingga penting agar Anda tidak membuat nama yang tidak jelas untuk kelas, metode, dan variabel Anda.

Tip pribadi saya di sini adalah; jangan takut untuk memiliki kelas yang lebih panjang atau nama metode. Jika Anda perlu memiliki komentar yang menjelaskan metode Anda, maka nama metode Anda mungkin bisa lebih baik.

Contohnya adalah jika Anda perlu mendapatkan pengguna dari database dengan beberapa syarat tambahan, mungkin mereka adalah pengguna yang berusia di atas 50 tahun, maka jangan beri nama metode Anda getUsers . Cara yang lebih baik untuk menamainya adalah getAllUsersOver50YearsOld .

Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...
Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...
Game Remaster HD untuk Linux yang Belum Pernah Rilis Linux Sebelumnya
Banyak pengembang dan penerbit game datang dengan remaster HD dari game lama untuk memperpanjang umur waralaba, harap penggemar meminta kompatibilitas...