PDA

View Full Version : چاپ آبجکت



majidbayat
پنج شنبه 23 بهمن 1393, 22:51 عصر
نتیجه انجام کوئری زیر یک آبجکت هست که در متغییر مورد نظر ذخیره میشه

$issues1=Project::model()->with('issues')->findByPk(1);


چطور میتونم محتوای متغییر رو چاپ کنم
تا اونجایی که میدونم برای چاپ آرایه از <pre> استفاده میشه ... آیا برای آبجکت هم تگی وجود داره
پیشاپیش از پاسختون ممنونم

Tarragon
پنج شنبه 23 بهمن 1393, 23:32 عصر
سلام
من برای تست هر نوع متغیری از var_dump استفاده می کنم.
هیچ مشکلی هم نداشته.

majidbayat
جمعه 24 بهمن 1393, 11:45 صبح
خیلی ممنون مشکلم حل شد.
یه سوال دیگه هم دارم قاعدتا کد بالا باید پروژه مورد نظر را به همراه issue های مربوطه در متغیر مورد نظر ذخیره کنه...اما اثری از issue ها نیست
چرا؟


object(Project)[76]


private '_new' (CActiveRecord) => boolean false
private '_attributes' (CActiveRecord) =>
array (size=7)
'id' => string '1' (length=1)
'name' => string 'پروژه شماره 1' (length=23)
'description' => string 'توضیحی ندارد' (length=23)
'create_time' => string '0000-00-00 00:00:00' (length=19)
'create_user_id' => null
'update_time' => string '0000-00-00 00:00:00' (length=19)
'update_user_id' => null
private '_related' (CActiveRecord) =>
array (size=1)
'issues' =>
array (size=2)
0 =>
object(Issue)[77]
...
1 =>
object(Issue)[78]
...
private '_c' (CActiveRecord) => null
private '_pk' (CActiveRecord) => string '1' (length=1)
private '_alias' (CActiveRecord) => string 't' (length=1)
private '_errors' (CModel) =>
array (size=0)
empty
private '_validators' (CModel) => null
private '_scenario' (CModel) => string 'update' (length=6)
private '_e' (CComponent) => null
private '_m' (CComponent)=>null

MMSHFE
شنبه 25 بهمن 1393, 09:59 صبح
خیر Issueها همراهش نیست. باید برای Issueها از $issues1->issues استفاده کنید. راه بهتر اینه:

$issues1 = Project::model()->findByPk(1)->issues;
یا اینطوری:

$issues1 = Issues::model()->with(array('project' => array('condition' => 'projects.id=1')))->findAll();
برای نمایش بهتر اشیاء هم یک کلاس به اسم Tools و با نام فایل Tools.php در مسیر protected/components بسازین و این کد رو داخلش بنویسید:

class Tools
{
public static function debug($var, $exit = false)
{
echo '<pre align="left" dir="ltr" style="direction:ltr;text-align:left;">';
echo CVarDumper::dump($var, 10, true);
echo '</pre>';
if($exit) {
Yii::app()->end();
}
}
}
حالا توی کل پروژه میتونین اینطوری ازش استفاده کنید:

Tools::debug($issues1); // only display the object
Tools::debug($issues1, true); // display the object and terminate the program