Dapatkah saya mengubah kunci utama model Eloquent.
Saya ingin menyetel kunci utama misalnya, admin_id
bukan 'id'?
Saya tahu saya bisa mengubah nama tabel untuk model seperti
protected $table = "admin";
Apakah ada yang serupa untuk kunci utama?
$primarykey
harus$primaryKey
(huruf besar K) dan tidak akan berfungsi sebaliknya.$primaryKey = array('key1', 'key1');
github.com/laravel/framework/issues/5517#issuecomment-52996610class User extends Eloquent { protected $primarykey = 'admin_id'; }
tapi
class User extends Eloquent { protected $primaryKey = 'admin_id'; }
perhatikan huruf K (kapital) pada variabel $ primaryKey
sumber
Jika Anda ingin menggunakan kunci komposit (string)
Anda perlu memastikan bahwa Anda mengatur
public $incrementing = false
jika tidak, laravel akan mentransmisikan bidang tersebut ke Integer, memberi0
class User extends Model { protected $primaryKey = 'my_string_key'; public $incrementing = false; }
sumber
Variabel kunci utama peka huruf besar / kecil dan harus
$primaryKey
berfungsi.Contoh:
protected $primaryKey = 'your_primary_key_id';
Contoh dalam kelas Model:
class User extends Eloquent { protected $primaryKey = 'your_primary_key_id'; }
sumber
class User extends Eloquent { protected $primaryKey = 'admin_id'; }
Sesuai dokumentasi Laravel:
Fasih juga akan menganggap bahwa setiap tabel memiliki kolom kunci utama bernama
id
. Anda dapat menentukan$primaryKey
properti untuk mengganti konvensi ini.Selain itu, Eloquent mengasumsikan bahwa kunci primer adalah nilai integer yang bertambah, yang berarti bahwa secara default kunci primer akan dilemparkan ke int secara otomatis. Jika Anda ingin menggunakan kunci utama non-incrementing atau non-numerik, Anda harus menyetel
$incrementing
properti publik pada model Anda ke false.sumber
Untuk menetapkan kunci utama Anda harus ..->
class User extends Eloquent { protected $primaryKey='admin_id'; }
sumber