render داخل view و عدم شناسایی متغیر و نمایش اطلاعات , yii2advanced

[rtl][font="Tahoma"]

سلام دوستان

من توی کنترلر این طوری ویو رو صدا زدم:

[/font][/rtl]




return $this->render('show_card', ['result' => $result, 'wholeResult' => $wholeResult, 'user' => $user]);



[rtl][font="Tahoma"]

بعد توی show_card یه سری اطلاعات رو نشون دادم و دوباره یه ویو دیگه صدا زدم به این شکل که متغییر user رو دوباره توش پاس دادم:

[/font][/rtl]




$this->render('/site/_form',['user'=> $user]);



[rtl][font="Tahoma"]

تا اینجا درسته و این فرم هم رندر میشه ولی دوتا مشکل داره

یکی اینکه هیچ اطلاعاتی رو نشون نمی ده، حتی یه متن ساده که توش قرار می دم

یکی هم اینکه متغییر user رو نمی شناسه

نمی دونم مشکل کجاست

[/font][/rtl]

[rtl][font="Tahoma"]درست شد[/font][/rtl]




echo $this->render('/site/_form',['user'=> $user]);




[font="Tahoma"][rtl]مشکل این بود echo نشده بود؟

ضمنا وقتی داخل یک ویو یک ویو دیگه صدا زده میشه، از renderPartial استفاده باید کرد! الان کد شما بدون مشکل کار میکنه؟ اینجوری ۲ تا layout تو صفحه لود میشه![/rtl][/font]

[rtl][font="Tahoma"]

آره مشكل از echo بود

توي yii2 توي view از renderPartial ديگه استفاده نمي شه،

اينجا render همون renderPartial رو انجام ميده

[/font][/rtl]

[font="Tahoma"][rtl]پس این متد به چه درد میخوره؟

RenderPartial

[/rtl][/font]

[rtl][font="Tahoma"]

من خودم از اين وقتي با ajax يه درخواست ميدم و مي خوام نتيجه رو برگردونم استفاده مي كنم

[b]

مثال[/b]

جايي ديگه كاربرد داره يا نه ، تا حالا بهش برخورد نكردم

[/font][/rtl]

[rtl][font="Tahoma"]اگر از renderPartial برای پاسخ به درخواست ajax استفاده کنیم، سوال بعدی که پیش میاد اینه که renderAjax به چه دردی میخوره پس![/font][/rtl]

[rtl][font="Tahoma"]منم دقيقا نمي دونم[/font][/rtl]

[rtl]

RenderAjax هم [size="2"]مثل RenderPartial عمل میکنه، تنها تفاوتش اینه که کد های جاوااسکریپت و استایل هایی که با registerJS و registerCss ثبت شدن رو هم توی خروجی میده…[/size]

[/rtl]