মতবাদে ডিফল্ট মান


338

আমি কীভাবে মতবাদ 2 এ একটি ডিফল্ট মান সেট করব?


26
@ ওআরএম umn কলাম (নাম = "ফু", টাইপ = "দশমিক", নির্ভুলতা = 7, স্কেল = 2, বিকল্পগুলি = default "ডিফল্ট" = 0}) কাজ করে (নীচের অ-জনপ্রিয় উত্তর থেকে)
ওয়েফিয়ার

2
@ ওআরএম \ কলাম (নাম = "ইস_এক্টিভেটেড", টাইপ = "বুলিয়ান", অপশন = default "ডিফল্ট": 0}) বা @ অর্ম name কলাম (নাম = "ইজ-অ্যাক্টিভেটেড", টাইপ = "বুলিয়ান", অপশন = default "ডিফল্ট) "= 0})
আহমাদ হামেদি

আহমেদ এটি সিমফনি ২.৩-তে বুলিয়ানদের পক্ষে কাজ করবে বলে মনে হচ্ছে না। তবে বিকল্পগুলি = {"ডিফল্ট" = "0"}) কার্যকর করে, পূর্ণসংখ্যাকে উদ্ধৃতিতে রেখে।
আকায়রা

4
এটি যদি বুলিয়ান হয় তবে আপনি কেন ব্যবহার করছেন না: বিকল্পগুলি = default "ডিফল্ট": মিথ্যা}?
রোবোক্ডার

উত্তর:


385

ডাটাবেস ডিফল্ট মানগুলি "বহনযোগ্য" সমর্থিত নয়। ডাটাবেস ডিফল্ট মানগুলি ব্যবহার করার একমাত্র উপায় হ'ল columnDefinitionম্যাপিং অ্যাট্রিবিউটের মাধ্যমে যেখানে আপনি কলামটির জন্য SQLস্নিপেট ( DEFAULTকারণ সহ) নির্দিষ্ট করেছেন ক্ষেত্রটি ম্যাপ করা হয়েছে।

তুমি ব্যবহার করতে পার:

<?php
/**
 * @Entity
 */
class myEntity {
    /**
     * @var string
     *
     * @Column(name="myColumn", type="string", length="50")
     */
    private $myColumn = 'myDefaultValue';
    ...
}

পিএইচপি-স্তরের ডিফল্ট মানগুলিকে অগ্রাধিকার দেওয়া হয় কারণ এগুলি সদ্য নির্মিত এবং স্থির অবজেক্টগুলিতে যথাযথভাবে উপলভ্য হয় (ডিফল্ট মানগুলি পেতে কোনও নতুন অবজেক্ট ধরে রাখার পরে মতবাদ ডাটাবেসে ফিরে যাবে না)।


11
তবে এখানে একটি সমস্যা রয়েছে: আমি যদি একটি "ডেটটাইম" টাইপ সেট করি তবে কী হবে?
আর্ট্রাগিস

46
@ আর্ট্রাগিস সত্তা নির্মাতায় আপনার প্রবৃত্তি স্থাপন করেছেন
আলেন টাইম্ব্লো

16
এই পদ্ধতির ব্যবহার করে মাইগ্রেশনগুলির সাথে যত্ন নিতে হবে কারণ যে কোনও বিদ্যমান সারি মাইগ্রেশন ব্যর্থ হতে পারে।
তামিলেন

7
ভেরিয়েবল সেট করার জন্য ইনস্ট্যান্টেশন অঞ্চলটি ব্যবহার করবেন না ... বিশ্বাস করুন, খারাপ জিনিসটি ঘটবে। পরিবর্তে কনস্ট্রাক্টর অঞ্চলটি ব্যবহার করুন।
মিমোরালিয়া

4
আমি টীকাতে কলামটি সংজ্ঞাটি ব্যবহার করতে পেলাম, বা কেউ মাইএসকিএল ক্লায়েন্ট বা phpmyadmin ব্যবহার করবে এবং মানগুলি ভুল হবে ...
এনডিএম

542
<?php
/**
 * @Entity
 */
class myEntity {
    /**
     * @var string
     *
     * @ORM\Column(name="myColumn", type="integer", options={"default" : 0})
     */
    private $myColumn;
    ...
}

নোট করুন যে এটিতে এসকিউএল ব্যবহার করা হয় DEFAULTযা কিছু ক্ষেত্রের মতো BLOBএবং এর জন্য সমর্থিত নয় TEXT


4
ভালো বল ধরা! দেখে মনে হচ্ছে অফিসিয়াল ডকুমেন্টেশনে কোনও বিকল্প নেই = {"ডিফল্ট" = 0} বিকল্প রয়েছে
ওয়েফিয়ার

2
এফওয়াইআই, optionsপ্যারামিটারটি unsignedমানগুলির জন্যও কার্যকর । এই উত্তরটি দেখুন
yvoyer

5
আমি এবং এই সমস্ত গ্রহণযোগ্য উত্তর সমস্ত ঘাঁটি কভার করতে ব্যবহার করি। এছাড়াও কেবল একটি নোট যা আপনি এটি করতে পারেন: options={"default": 0}"এবং না" ব্যবহারে সতর্ক থাকুন কারণ এটি আমার মতবাদের সংস্করণে ত্রুটি সৃষ্টি করে
স্কট ফ্ল্যাক

28
এটি নির্বাচিত উত্তর হওয়া উচিত!
এসেলাসি ইইউ

2
@ ম্যাট তিনি সম্ভবত বলেছিলেন যে এটি একটি অনির্ধারিত বৈশিষ্ট্য ছিল এবং অনিবন্ধিত বৈশিষ্ট্যগুলি অপসারণের প্রবণতা। এটি এখন নথিভুক্ত হিসাবে, আপনি এটি ব্যবহার নিরাপদ করা উচিত।
জেসিএম

62

আপনার সত্তায় একটি কনস্ট্রাক্টর সেট আপ করুন এবং সেখানে ডিফল্ট মান সেট করুন।


এটি অবশ্যই যৌক্তিক পদ্ধতির মতো বলে মনে হচ্ছে। কনস্ট্রাক্টরটিতে খেলাপি স্থাপনের ক্ষেত্রে কেউ কি সমস্যা নিয়েছে?
ক্যান্তেরা

26
মতবাদের প্রস্তাবিত সমাধান: doctrine-project.org/docs/orm/2.1/en/references/faq.html
ক্যান্টেরা

@ ক্যান্টেরা 25 এর উত্তরটি হওয়া উচিত +1
ফিল প্যাফোর্ড

3
আপনি যদি নতুন ক্ষেত্র যুক্ত করেন যার ডিফল্ট মান হওয়া দরকার তবে এটি বিদ্যমান সত্তাগুলি আপডেট করে না। সুতরাং না যে উত্তর হওয়া উচিত নয়। আপনার ঠিক কী করা দরকার তার উপর নির্ভর করে
টোম টিবেনস্কে

এটি আপডেটের উদ্দেশ্যেও কাজ করবে না। আপনি যদি কেবল ক্ষেত্রটি খালি করে (এমনকি পূর্ণসংখ্যার জন্যও) ডিফল্ট মানটিতে ফিরে যেতে চান তবে দুর্ভাগ্যক্রমে, এটি কাজ করবে না।
ThEBiShOp

55

ব্যবহার করুন:

options={"default":"foo bar"}

এবং না:

options={"default"="foo bar"}

এই ক্ষেত্রে:

/**
* @ORM\Column(name="foo", type="smallint", options={"default":0})
*/
private $foo

2
আমি দুঃখিত, আপনি ঠিক বলেছেন। সুতরাং আপনি এই পৃষ্ঠায় একটি ব্যাখ্যা খুঁজে পেতে পারেন: মতবাদ-orm টীকা-রেফারেন্স
স্ট্যানিস্লাভ টেরলেটস্কি

51

হালনাগাদ

সিমফনির জন্য ডকুমেন্টেশন পড়ার আরও একটি কারণ কখনই প্রবণতার বাইরে যাবে না। আমার নির্দিষ্ট কেসের জন্য একটি সহজ সমাধান আছে এবং এটি একটি ডিফল্ট মানটিতে field typeবিকল্প সেট করা empty_data

আবার, এই সমাধানটি কেবল সেই দৃশ্যের জন্য যেখানে কোনও ফর্মের খালি ইনপুটটি ডিবি ক্ষেত্রটি বাতিল করে দেয়।

পটভূমি

পূর্ববর্তী উত্তরগুলির মধ্যে আমার সুনির্দিষ্ট দৃশ্যে আমার কোনও সহায়তা হয়নি তবে আমি একটি সমাধান পেয়েছি।

আমার একটি ফর্ম ক্ষেত্র ছিল যা নিম্নলিখিত হিসাবে আচরণ করা দরকার:

  1. প্রয়োজন নেই, খালি ছেড়ে দেওয়া যেতে পারে। (ব্যবহৃত 'প্রয়োজনীয়' => মিথ্যা)
  2. যদি খালি ছেড়ে যায় তবে এটি একটি প্রদত্ত মানকে ডিফল্ট করা উচিত। আরও ভাল ব্যবহারকারীর অভিজ্ঞতার জন্য, আমি ইনপুট ক্ষেত্রে ডিফল্ট মান সেট করিনি বরং এটির পরিবর্তে এইচটিএমএল বৈশিষ্ট্যটি 'প্লেসহোল্ডার' ব্যবহার করেছি কারণ এটি কম বাধা রয়েছে।

আমি তখন এখানে দেওয়া সমস্ত সুপারিশ চেষ্টা করেছিলাম। আমাকে তাদের তালিকা করতে দিন:

  • সত্তা সম্পত্তি জন্য যখন একটি ডিফল্ট মান সেট করুন:
<?php
/**
 * @Entity
 */
class myEntity {
    /**
     * @var string
     *
     * @Column(name="myColumn", type="string", length="50")
     */
    private $myColumn = 'myDefaultValue';
    ...
}
  • বিকল্পগুলি টীকাটি ব্যবহার করুন:
@ORM\Column(name="foo", options={"default":"foo bar"})
  • কনস্ট্রাক্টরের ডিফল্ট মান সেট করুন:
/**
 * @Entity
 */
class myEntity {
    ...
    public function __construct()
    {
        $this->myColumn = 'myDefaultValue';
    }
    ...
}
এর কোনওটিই কাজ করে নি এবং সমস্ত কারণ সিমফনি আপনার সত্তা শ্রেণিটি ব্যবহার করে।

গুরুত্বপূর্ণ

সিমফনি ফর্ম ক্ষেত্রগুলি সত্তা শ্রেণিতে সেট করা ডিফল্ট মানগুলিকে ওভাররাইড করে। অর্থ, আপনার ডিবির জন্য আপনার স্কিমাটিতে একটি ডিফল্ট মান সংজ্ঞায়িত হতে পারে তবে আপনি যদি ফর্মটি জমা দেওয়ার সময় কোনও অপ্রয়োজনীয় ক্ষেত্রটি খালি রাখেন , তবে form->handleRequest()আপনার form->isValid()পদ্ধতির অভ্যন্তরে default ডিফল্ট মানগুলি আপনার Entityশ্রেণিতে ওভাররাইড হবে এবং সেগুলি ইনপুট ক্ষেত্রের মানগুলিতে সেট করবে। যদি ইনপুট ক্ষেত্রের মানগুলি ফাঁকা থাকে, তবে এটি Entityসম্পত্তিটিকে সেট করবে null

http://symfony.com/doc/current/book/forms.html#handling-form-submissions

আমার কাজ

form->handleRequest()আপনার form->isValid()পদ্ধতির অভ্যন্তরের পরে আপনার নিয়ামকের ডিফল্ট মান সেট করুন :

...
if ($myEntity->getMyColumn() === null) {
    $myEntity->setMyColumn('myDefaultValue');
}
...

একটি সুন্দর সমাধান নয় তবে এটি কাজ করে। আমি সম্ভবত একটি করতে পারি validation groupতবে এমন লোকও থাকতে পারে যারা এই সমস্যাটিকে ডেটা বৈধকরণের পরিবর্তে ডেটা ট্রান্সফরমেশন হিসাবে দেখেন , আমি সিদ্ধান্ত নেওয়ার জন্য আপনার কাছে রেখে দিই।


ওভাররাইড সেটার (কাজ করে না)

আমি Entityসেটারটিকে এইভাবে ওভাররাইড করার চেষ্টা করেছি :

...
/**
 * Set myColumn
 *
 * @param string $myColumn
 *
 * @return myEntity
 */
public function setMyColumn($myColumn)
{
    $this->myColumn = ($myColumn === null || $myColumn === '') ? 'myDefaultValue' : $myColumn;

    return $this;
}
...

এটি, যদিও এটি পরিষ্কার দেখায়, এটি কাজ করে না । কারণটি হ'ল মন্দ form->handleRequest()পদ্ধতিটি ডেটা আপডেট করার জন্য মডেলের সেটার পদ্ধতিগুলি ব্যবহার করে না (আরও form->setData()বিশদে অনুসন্ধান করুন)।


এই উত্তরটি অবশ্যই শীর্ষে যেতে হবে। ফর্ম উপাদানটি আপনার সম্পত্তিগুলির মানগুলি পেতে এবং সেট করতে সম্পত্তিAccessor ব্যবহার করে। প্রপার্টি অ্যাক্সেসরগুলি উপলভ্য হলে কী পদ্ধতিগুলি ব্যবহার করা উচিত?
এক্সবব

1
বুলিয়ান কলামগুলি পিএইচপি থেকে ডিফল্ট সমর্থন করে না, সুতরাং কেবলমাত্র টীকা
ক্রুসেডার

ফর্মগুলি থেকে তথ্য আসার সময় এটিই একমাত্র সমাধান যা কাজ করেছিল। এছাড়াও আমি বুলিয়ান সম্পর্কিত উপরের মন্তব্যগুলির সাথে একমত নই। তারা ডিফল্ট টীকা গ্রহণ করে না।
বার্নার্ডা

সিমফনি ফর্ম উপাদানটি মডেল সেটারগুলি ব্যবহার করে তবে কেবল যখন ফর্মের মডেল ফর্ম্যাট ডেটা মডেল অবজেক্ট উদাহরণের সাথে সম্পর্কিত তথ্য প্রাপ্তির সাথে ফেরত ডেটার সাথে পৃথক হয়। আপনার যদি আপনার কাস্টম সেটার / গেটর পদ্ধতি রয়েছে - "সম্পত্তি_path" ফর্ম বিকল্পটি ব্যবহার করুন (প্রপার্টিঅ্যাকসেসর দ্বারা পরিচালিত হবে) বা কাস্টম ডেটা ম্যাপার (ফর্ম এবং মডেল অবজেক্টের মধ্যে ডেটা স্থানান্তর রুটিনকে ম্যানুয়ালি সংজ্ঞায়িত করার অনুমতি দেয়)।
আরকেমেলার

1
এই প্রশ্নটি মতবাদ সম্পর্কে নয়, সিম্পনি হিসাবে, সুতরাং এই উত্তরটি আসলে বিষয়টিতে নেই।
ওমন

18

আমি যে ওয়ার্কারআউন্ডটি ব্যবহার করছিলাম তা ছিল a LifeCycleCallback। উদাহরণস্বরূপ, আরও কোনও "নেটিভ" পদ্ধতি আছে কিনা তা দেখার জন্য এখনও অপেক্ষা করছি @Column(type="string", default="hello default value")

/**
 * @Entity @Table(name="posts") @HasLifeCycleCallbacks
 */
class Post implements Node, \Zend_Acl_Resource_Interface {

...

/**
 * @PrePersist
 */
function onPrePersist() {
    // set default date
    $this->dtPosted = date('Y-m-d H:m:s');
}

1
ভবিষ্যতের পাঠকদের জন্য, জীবনচক্র কলব্যাকের উপর নির্ভর করবেন না :) এমনকি মার্কো পাইভেট্টাও তাদের বিপক্ষে।
এমিক্স

সতর্কবাণী! সত্তা ইতিমধ্যে dtPosted সম্পত্তি সেট করে থাকলে আপনার কোডটি কেবল সম্পত্তিটিকে ওভাররাইট করে দেবে। অ্যাক্সেসরগুলির উপস্থিতি থাকলে সর্বদা ব্যবহার করুন! if (!$this->getDtPosted()) { $this->setDtPosted(new \DateTime()); }
বারহ

13

আপনি এটি এক্সএমএল ব্যবহার করেও করতে পারেন:

<field name="acmeOne" type="string" column="acmeOne" length="36">
    <options>
        <option name="comment">Your SQL field comment goes here.</option>
        <option name="default">Default Value</option>
    </options>
</field>

8

আমি নিজের জন্য এটি কীভাবে সমাধান করেছি তা এখানে। নীচে মাইএসকিউএল এর জন্য ডিফল্ট মান সহ একটি সত্তার উদাহরণ দেওয়া আছে। তবে এটির জন্য আপনার সত্তায় কোনও কনস্ট্রাক্টর সেটআপ করা দরকার এবং আপনার সেখানে ডিফল্ট মান সেট করতে হবে।

Entity\Example:
  type: entity
  table: example
  fields:
    id:
      type: integer
      id: true
      generator:
        strategy: AUTO
    label:
      type: string
      columnDefinition: varchar(255) NOT NULL DEFAULT 'default_value' COMMENT 'This is column comment'

আমার কনফিগারেশনে এই লাইনটি সহ মতবাদ আমি চালানোর সময় কলামে ডিফল্টটি ফেলে দেওয়ার চেষ্টা করে। পিএইচপি অ্যাপ্লিকেশন / কনসোল মতবাদ: স্কিমা: আপডেট
শেপশিফটার

1
এটি এখানে সবচেয়ে খারাপ উত্তর। columnDefinitionসরাসরি একটি ORM থাকার উদ্দেশ্যটির পুনরুদ্ধার করে, যা ডাটাবেস থেকে বিমূর্ততা। এই সমাধানটি বহনযোগ্যতা ভঙ্গ করবে, আপনার ডিবি বিক্রেতার উপর আপনার সফ্টওয়্যার নির্ভর করবে এবং ডক্ট্রাইন মাইগ্রেশন সরঞ্জামগুলিও ভেঙে দেবে।
পেড্রো কর্ডেরিও

@ পেড্রোকারডেরিও আমি আপনার সাথে সম্পূর্ণ একমত অন্য সমস্যা উত্থাপিত না হওয়া পর্যন্ত এটি কেবল একটি দ্রুত সমাধান।
পুতনা

7

আমার জন্য একটি মাইএসকিএল ডাটাবেসেও কাজ করে:

Entity\Entity_name:
    type: entity
    table: table_name
    fields: 
        field_name:
            type: integer
            nullable: true
            options:
                default: 1

টীকা বিন্যাসে যার জন্য আগ্রহী: @ ওআরএম \ কলাম (নাম = "সত্ত্বা_নাম", টাইপ = "পূর্ণসংখ্যা", বিকল্পগুলি = default "ডিফল্ট" = "1"})
হ্যানেস

7

এর কোনওটিই আমার পক্ষে কাজ করেনি। আমি মতবাদের সাইটে এমন কিছু ডকুমেন্টেশন পেয়েছি যেগুলিতে একটি ডিফল্ট মান সেট করতে সরাসরি মান সেট করতে বলে।

https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/faq.html#how-can-i-add-default-values-to-a-column

private $default = 0;

এটি আমার চাইবার মানটি প্রবেশ করিয়েছে।


দয়া করে লিঙ্কটি মতবাদ- or.readthedocs.io/projects/doctrine-orm/en/latest/… এ পরিবর্তন করুন পয়েন্ট ৩.২.২ দেখুন। আমি কীভাবে একটি কলামে ডিফল্ট মান যুক্ত করতে পারি?
টবি


3

উজ্জ্বল উত্তর @ রোমানব যোগ করা।

এটি মাইগ্রেশনে সামান্য ওভারহেড যুক্ত করে, কারণ আপনি স্পষ্টতই নাল বাধা ছাড়াই এবং কোনও ডিফল্ট মান ছাড়াই কোনও ক্ষেত্র তৈরি করতে পারবেন না।

// this up() migration is autogenerated, please modify it to your needs
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "postgresql");

//lets add property without not null contraint        
$this->addSql("ALTER TABLE tablename ADD property BOOLEAN");

//get the default value for property       
$object = new Object();
$defaultValue = $menuItem->getProperty() ? "true":"false";

$this->addSql("UPDATE tablename SET property = {$defaultValue}");

//not you can add constraint
$this->addSql("ALTER TABLE tablename ALTER property SET NOT NULL");

এই উত্তরটির সাথে, আমি আপনাকে ভাবতে উত্সাহিত করি কেন প্রথমে আপনার ডাটাবেসে ডিফল্ট মান প্রয়োজন? এবং সাধারণত এটি নাল বাধা না দিয়ে বস্তু তৈরি করার অনুমতি দেওয়া হয়।


3

আপনি যদি আপনার সত্তার জন্য ইয়ামল সংজ্ঞা ব্যবহার করেন তবে নিম্নলিখিতটি পোস্টগ্রেসকিএল ডাটাবেসে আমার জন্য কাজ করে:

Entity\Entity_name:
    type: entity
    table: table_name
    fields: 
        field_name:
            type: boolean
            nullable: false
            options:
                default: false

1
আপনি যদি $entity->setFieldName()ফ্লাশিংয়ের আগে ব্যবহার না করেন ? মতবাদটি নালার ডিফল্ট মান সংজ্ঞায়িত করে বলে মনে হচ্ছে। Yaml মধ্যে একমাত্র সমাধান ডিফল্ট মান নির্ধারণ করতে হয় ইন সত্তা বর্গ যা আমার বোবা বলে মনে হয় যেহেতু এটি ইতিমধ্যে yaml সংজ্ঞায়িত হয়েছে তা ... -_-
j0k

1

আমি একই সমস্যা নিয়ে লড়াই করেছি। সত্তা (স্বয়ংক্রিয়ভাবে) ডাটাবেস থেকে ডিফল্ট মান পেতে চাই। অনুমান করুন, আমি এটা করেছি :)

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Steffen
 * Date: 27-6-13
 * Time: 15:36
 * To change this template use File | Settings | File Templates.
 */

require_once 'bootstrap.php';

$em->getConfiguration()->setMetadataDriverImpl(
    new \Doctrine\ORM\Mapping\Driver\DatabaseDriver(
        $em->getConnection()->getSchemaManager()
    )
);

$driver = new \Doctrine\ORM\Mapping\Driver\DatabaseDriver($em->getConnection()->getSchemaManager());
$driver->setNamespace('Models\\');

$em->getConfiguration()->setMetadataDriverImpl($driver);

$cmf = new \Doctrine\ORM\Tools\DisconnectedClassMetadataFactory();
$cmf->setEntityManager($em);
$metadata = $cmf->getAllMetadata();

// Little hack to have default values for your entities...
foreach ($metadata as $k => $t)
{
    foreach ($t->getFieldNames() as $fieldName)
    {
        $correctFieldName = \Doctrine\Common\Util\Inflector::tableize($fieldName);

        $columns = $tan = $em->getConnection()->getSchemaManager()->listTableColumns($t->getTableName());
        foreach ($columns as $column)
        {
            if ($column->getName() == $correctFieldName)
            {
                // We skip DateTime, because this needs to be a DateTime object.
                if ($column->getType() != 'DateTime')
                {
                    $metadata[$k]->fieldMappings[$fieldName]['default'] = $column->getDefault();
                }
                break;
            }
        }
    }
}

// GENERATE PHP ENTITIES!
$entityGenerator = new \Doctrine\ORM\Tools\EntityGenerator();
$entityGenerator->setGenerateAnnotations(true);
$entityGenerator->setGenerateStubMethods(true);
$entityGenerator->setRegenerateEntityIfExists(true);
$entityGenerator->setUpdateEntityIfExists(false);
$entityGenerator->generate($metadata, __DIR__);

echo "Entities created";

3
কয়েক বছর ধরে এটিতে ফিরে আসার জন্য আমি আপনাকে এই পদ্ধতির ব্যবহার না করার পরামর্শ দিচ্ছি, এটি সত্যই একটি হ্যাকি হ্যাক।
স্টিফেন বার্ম

যেহেতু আপনি আপনার নিজের জবাবের প্রস্তাব দিচ্ছেন না, আপনি এটিকে পাশাপাশি মুছে ফেলতে পারেন;)
ড্র্যাগস

1

কনস্ট্রাক্টরটিতে মান নির্ধারণের সময় কাজ করা হবে, ডক্ট্রাইন লাইফাইসাইকেল ইভেন্টগুলি ব্যবহার করা আরও ভাল সমাধান হতে পারে।

উপজীব্য করে prePersistলাইফ সাইকল ইভেন্ট, আপনি শুধুমাত্র প্রাথমিক জিদ আপনার সত্তা উপর আপনার ডিফল্ট মান সেট পারে।


লাইফাইসাইকেল ইভেন্টগুলি ব্যবহার করা হয় a hack। হ্যাকগুলির উপর কখনই ভরসা করবেন না।
এমিক্স

0

সম্পত্তি সংজ্ঞা উপর ডিফল্ট মান সেট করার সময় সাবধান! এটিকে সমস্যা-মুক্ত রাখতে পরিবর্তে এটি নির্মাণে করুন। যদি আপনি এটি সংজ্ঞা সংজ্ঞাতে সংজ্ঞায়িত করেন, তবে ডাটাবেসে অবজেক্টটি অবিরত রাখুন, তারপরে একটি আংশিক লোড করুন, তারপরে লোড না হওয়া বৈশিষ্ট্যের আবার ডিফল্ট মান থাকবে। আপনি যদি আবার অবজেক্টটি ধরে রাখতে চান তবে এটি বিপজ্জনক।

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