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


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.