-
Notifications
You must be signed in to change notification settings - Fork 0
Pluf Model
ساختار دادهای اصلی در pluf است Pluf_Model است. ORM نیز برای ایجاد پایگاه داده و جدولهای مربوطه از این مدل استفاده میکند. بنابراین کلیه ساختارهای دادهای (به خصوص مواردی که باید به صورت یک موجودیت در پایگاه داده قرار گیرند) از این مدل گسترش داده میشوند. امکانات مختلفی در این مدل قرار داده شده که در این قسمت برخی از آنها شرح داده میشود.
امکان تعریف رابطه چند به چند بین دو موجودیت گسترش یافته از Pluf_Model وجود دارد. برای این کار باید در یکی از موجودیتها فیلدی برای این ارتباط قرار داده شود. به عنوان مثال فرض کنید دو مدل دادهای با نام MY_Category و MY_Item داریم. برای ایجاد ارتباط چند به چند بین آنها باید در یکی از این دو مدل مثلا در MY_Category یک فیلد به صورت زیر تعریف شود:
'items' => array(
'type' => 'Pluf_DB_Field_Manytomany',
'model' => 'Item',
'relate_name' => 'assets',
'blank' => false,
'editable' => false,
'readable' => false
)
نکته: برای تعریف رابطه چند به چند تنها باید در یکی از دو مدل دادهای مربوط به رابطه فیلد مربوطه را تعریف کنید در غیر این صورت ایجاد پایگاه داده با مشکل مواجه خواهد شد.
وقتی بین دو مدل دادهای ارتباط چند به چند وجود داشته باشد. برای ایجاد ارتباط بین دو داده از نوع این مدلهای دادهای میتوان از متد setAssoc() استفاده کرد. به عنوان نمونه در مثال بالا، فرض کنیم $item دادهای از نوع MY_Item است و $category دادهای از نوع MY_Category است. برای اضافه کردن یک item به یک category میتوان دستور زیر را استفاده کرد:
$item = new MY_Item();
$category = new MY_Category();
...
$category->setAssoc($item);
برای حذف ارتباط بین دو داده از نوع دو مدل دادهای که ارتباط چند به چند بینشان تعریف شده میتوان از متد delAssoc() استفاده کرد. به عنوان نمونه در مثال بالا، فرض کنیم $item دادهای از نوع MY_Item است و $category دادهای از نوع MY_Category است. برای حذف یک item به یک category میتوان دستور زیر را استفاده کرد:
$item = new MY_Item();
$category = new MY_Category();
...
$category->delAssoc($item);