تالار گفتمان nCIS.ir

نسخه‌ی کامل: انتقال پارامتر نوع مدل از داخل ویو (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام چرا در ویو نمیتوان پارامتر مدل را انتقال داد
<?=Html::a('test',['/query-detail/edit-post','model'=>$model,'key'=>$key,'index'=>$index]);?>

نمیدونم چرا فقط پارامتر مدل منتقل نمیشه در صورتیکه سایر پارامترها منتقل میشه از
Yii::$app->getUrlManager()->createUrl(['/query-detail/edit-post','model'=>$model,'key'=>$key,'index'=>$index ])

هم استفاده کردم باز هم خطا میده که فاقد پرامتر مدل است
در همه ویو ها تست کردم این مشکل هست در حالیکه در کنترلر اگر با
$this->redirect(['/query-detail/edit-post','model'=>$model,'key'=>$key,'index'=>$index ]);

استفاده کنیم مدل منتقل میشود؟

نمیدونم در ویو چطور از redirect استفاده کنم تا بتونم پارامتر مدل رو بدون مشکل انتقال بدم؟ مجبورم تک تک فیلدها را دونه دونه منتقل کنم ؟

a1552f

موقع ریدایرکت تنها attribute هایی که مقدار داشته باشن بوسیله متد get ارسال میشن ، بنظرم مدل رو توی یک سیشن بریزید و توی ویو سیشن رو توی یک متغییر بریزید و ازش استفاده کنید
کاری که میخواین انجام بدین دقیقاً چیه؟ شما میخواین ریدایرکت کنید؟ مدل رو نیاز ندارین و منطقی نیست که بفرستین چون این مقادیر به URL اضافه میشن و نمیشه آبجکت رو توی QueryString گذاشت چون یه رشته متنی ساده است. بجاش id مدل رو بفرستین و اونطرف مدل رو با کمک id پیدا کنید.

a1552f

میتونید تنها کلید مدل رو له وسیله ویو بفرستید به اکشن و توی کنترلر یک متد بنویسید که بر اساس کلید رکورد مورد نظر رو برگردونه
ممنون چون یه بار واکشی شده نمیخواستم دوباره واکشی کنم پس با توجه به نظرات شما بهترین راه همون استفاده از سشنه وذخیره مدل در اون
حجم سشن بالا میره. بعلاوه باید سریالایز و دیسریالایز کنید که زیاد جالب نیست. با سشن، همه کاربران قراره این اطلاعات رو روی سرور بریزن و سنگین میشه. از واکشی نتایج به دفعات نگران نباشین. توی صفحه اصلی همین انجمن بالای 50 کوئری زده میشه. وقتی سرور PHP و MySQL یکیه، این چیزا سربار زیادی ایجاد نمیکنه. اگه خیلی روی این موضوع حساس هستین میتونین نتایج کوئری رو Cache کنید.