স্পষ্টতই ডিফল্ট প্রাথমিক কী পরিবর্তন করুন


94

আমি কি স্পষ্টত মডেল প্রাথমিক কী পরিবর্তন করতে পারি?

আমি admin_idআইডি পরিবর্তে প্রাথমিক কী সেট করতে চাই ?

আমি জানি আমি মডেলের মতো টেবিলের নাম পরিবর্তন করতে পারি

protected $table = "admin";

প্রাথমিক কী এর জন্য কি অনুরূপ কিছু আছে?

উত্তর:


193

হ্যাঁ

class User extends Eloquent {

    protected $primaryKey = 'admin_id';

}

16
এই প্রশ্নটি উল্লেখ করে অন্য কারও জন্য, অন্য একটি উত্তর ব্যবহার করুন। $primarykeyহওয়া উচিত $primaryKey(বড় হাতের অক্ষর কে) এবং অন্যথায় কাজ করবে না।
— জেরেমি হ্যারিস

4
প্রাইমারি কী হিসাবে যদি আমার একাধিক ক্ষেত্র থাকে?
— বাগসফ্লায়ার

@ ব্যাগসফ্লাইয়ার আপনি ঠিক মজা করছেন? একটি ডাটাবেস সারণীতে একাধিক প্রাথমিক কী?
— নভিকা 89

@ ব্যাগসফ্লায়ার ইলুভ্যুল্যান্ট সমন্বিত কীগুলি সমর্থন করে না, তবে এখানে একটি ভাল কাজ রয়েছে যাতে আপনি $primaryKey = array('key1', 'key1'); github.com/laravel/framework/issues/5517#issuecomment-52996610
— mopo922

শুধু এফওয়াইআই এটি লারাভেল ৫.৪-তে দেখে মনে হচ্ছে আপনার আর নিজের পিকে সেট করার দরকার নেই যদি এটি মডেল নামের মতো হয় তবে এটি আপনার জন্য যুক্ত করে (এবং অন্যথায় ত্রুটি ঘটবে)।
— পুদিনা

14
class User extends Eloquent {

    protected $primarykey = 'admin_id';

}

কিন্তু

class User extends Eloquent {

    protected $primaryKey = 'admin_id';

}

ভেরিয়েবল $ প্রাথমিককিতে K (মূলধন) অক্ষরটি নোট করুন


12

আপনি যদি একটি যৌগিক কী (একটি স্ট্রিং) ব্যবহার করতে চান

আপনাকে নিশ্চিত করতে হবে যে আপনি সেট করেছেন public $incrementing = falseঅন্যথায় লারাভেল ক্ষেত্রটি একটি পূর্ণসংখ্যার কাছে দেবে, দিচ্ছে0

class User extends Model {

    protected $primaryKey = 'my_string_key';
    public $incrementing = false;

}

আমি পাঠ্য স্ট্রিং কর্ন হিসাবে প্রাইমারি কেতে ওভাররাইড করেছি - সংগ্রহের মানটি সঠিক ছিল তবে যখন আমি কলটিকে $ ফলাফল-> প্রাথমিক_কি হিসাবে উল্লেখ করেছি তবে সংগ্রহ / অ্যারেটি সঠিক স্ট্রিং দেখিয়েছে তবে এটি কেবল শূন্যই ফিরে আসবে - কিছুটা সময় নিয়েছে এটিকে ট্র্যাক করুন যখন আমি লক্ষ্য করেছি যে প্রাথমিককি কীতে INT হিসাবে দেখা যাচ্ছে এবং অবজেক্টে বর্ধনযোগ্য। পাবলিক $ ইনক্রিমেন্টিং = ভুয়া সেট করতে হয়েছিল।
— জি ম্যান

7

প্রাথমিক কী ভেরিয়েবলটি কেস সংবেদনশীল এবং অবশ্যই $primaryKeyকাজ করা উচিত ।

উদাহরণ:

protected $primaryKey = 'your_primary_key_id';

একটি মডেল শ্রেণীর মধ্যে উদাহরণ:

class User extends Eloquent {

    protected $primaryKey = 'your_primary_key_id';

}

4
আমি কি এখনও এটি illa ভাস্য অ্যারে যুক্ত করতে হবে?
— আনিস লুনিস

1
class User extends Eloquent {

    protected $primaryKey = 'admin_id';

}

লারাভেল ডকুমেন্টেশন অনুসারে:


বাক্যবাগীশ এছাড়াও অনুমান করা হবে প্রতিটি টেবিলের নামে একজন প্রাথমিক কী কলাম আছে যা id। আপনি $primaryKeyএই সম্মেলনটি ওভাররাইড করার জন্য কোনও সম্পত্তি সংজ্ঞায়িত করতে পারেন ।

তদতিরিক্ত, স্পষ্টত অনুমান করে যে প্রাথমিক কীটি একটি বর্ধমান পূর্ণসংখ্যার মান, যার অর্থ ডিফল্টরূপে প্রাথমিক কীটি স্বয়ংক্রিয়ভাবে কোনও আইটেমে কাস্ট হয়ে যাবে। আপনি যদি কোনও বর্ধিতকরণ বা একটি অ-সংখ্যাীয় প্রাথমিক কী ব্যবহার করতে চান তবে অবশ্যই $incrementingআপনার মডেলটির সর্বজনীন সম্পত্তিটিকে মিথ্যা হিসাবে সেট করতে হবে ।


-3

একটি প্রাথমিক কী বরাদ্দ করতে আপনার উচিত ..->

class User extends Eloquent {

    protected $primaryKey='admin_id';

 }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.