Saya akan seperti untuk mengambil file yang terakhir dimasukkan ke meja saya. Aku tahu bahwa metode pertama ()
ada dan menyediakan anda dengan file pertama di meja tapi aku don't tahu bagaimana untuk mendapatkan lalu masukkan.
Anda'll perlu memesan dengan bidang yang sama anda're memesan sekarang, tapi turun.
Sebagai contoh, jika anda memiliki waktu ketika upload dilakukan disebut upload_time
, anda'd melakukan sesuatu seperti ini;
Untuk Pre-Laravel 4
return DB::table('files')->order_by('upload_time', 'desc')->first();
Untuk Laravel 4 dan seterusnya
return DB::table('files')->orderBy('upload_time', 'desc')->first();
Untuk Laravel 5.7 dan seterusnya
return DB::table('files')->latest('upload_time')->first();
Ini akan memesan baris dalam file tabel dengan tanggal, waktu, descending order, dan mengambil yang pertama. Ini akan menjadi yang paling terbaru upload file.
Anda tidak pernah disebutkan apakah anda menggunakan Fasih, Laravel's default ORM atau tidak. Dalam kasus anda, let's mengatakan anda ingin mendapatkan entri terbaru dari tabel User, oleh created_at, anda mungkin bisa melakukan sebagai berikut:
User::orderBy('created_at', 'desc')->first();
Pertama itu perintah pengguna dengan created_at lapangan, descendingly, dan kemudian mengambil catatan pertama dari hasilnya.
Yang akan mengembalikan sebuah instance dari object User, bukan koleksi. Tentu saja, untuk menggunakan alternatif ini, anda harus memiliki User model, memperpanjang Fasih kelas. Hal ini mungkin terdengar agak membingungkan, tapi itu's benar-benar mudah untuk memulai dan ORM dapat benar-benar membantu.
Untuk informasi lebih lanjut, check out official dokumentasi yang cukup kaya dan rinci.
Untuk mendapatkan catatan terakhir rincian
Model ::all()->tahan();
atauModel ::orderBy('id', 'desc')->pertama();
Untuk mendapatkan catatan terakhir id
Model::all()->lalu()->id;
atau Model ::orderBy('id', 'desc')->pertama()->id;
Untuk mendapatkan catatan terakhir rincian, gunakan kode di bawah ini:
Model::where('field', 'value')->get()->last()
Lain cara mewah untuk melakukannya di Laravel 6.x (tidak Yakin, tetapi harus bekerja selama 5.x juga) :
DB::tabel('your_table')->get()->tahan();
Anda dapat mengakses bidang juga :
DB::tabel('your_table')->get()->lalu()->id;
Jika anda mencari untuk baris yang sebenarnya bahwa anda hanya dimasukkan dengan Laravel 3 dan 4 ketika anda melakukan save
atau membuat
aksi model baru seperti:
$user->save();
-atau-
$user = User::create(array('email' => '[email protected]'));
kemudian dimasukkan model contoh akan dikembalikan dan dapat digunakan untuk tindakan lebih lanjut seperti mengarahkan ke halaman profil user yang baru saja dibuat.
Mencari untuk terakhir dimasukkan rekor bekerja pada volume rendah sistem akan bekerja hampir sepanjang waktu, tetapi jika anda pernah harus sisipan pergi di waktu yang sama anda dapat berakhir query untuk menemukan salah record. Ini benar-benar dapat menjadi masalah dalam sistem transaksional di mana beberapa tabel yang perlu diperbarui.
Entah bagaimana semua hal di atas doesn't tampaknya bekerja untuk saya di laravel 5.3, jadi saya memecahkan masalah saya sendiri menggunakan:
Model::where('user_id', '=', $user_id)->orderBy('created_at', 'desc')->get();
harapan saya bisa untuk menyelamatkan seseorang.
Anda dapat menggunakan terbaru cakupan yang disediakan oleh Laravel dengan bidang yang ingin anda filter, let's mengatakan'akan diperintahkan oleh ID, maka:
Model::latest('id')->first();
Jadi dengan cara ini, anda dapat menghindari pemesanan dengan created_at
lapangan secara default pada Laravel.
Jika tabel memiliki field tanggal, ini(User::orderBy('created_at', 'desc')->pertama();
) adalah solusi terbaik, saya pikir.
Tapi tidak ada field tanggal, Model ::orderBy('id', 'desc')->pertama()->id;
adalah solusi terbaik, saya yakin.