• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
undefined variable in codeigniter
#1
سلام
بالاخره بعد از مدت ها وقت کردم برم سراغ ci . راهنماش چیز خوب و کاملی بود . بعد از تمام کردن راهنماش حالا نوبت به آن رسیده بود که یه مثالی رو امتحان کنم :
طبق مثال های خودش گفتم که یه کنترولر می سازم و تو تابع index اون یه متغیر تعریف می کنم و یه view فراخوانی می کنم و این متغیر رو به view می فرستم و چاپش می کنم .
چشمتون روز بد نبینه که این کار رو کردم ولی با error زیر رو به رو شدم :
undefined variable
خیلی جالب بود اینکه دقیقا از مثال خودش استفاده کردم . تازه اون متغیر رو که تو خود کنترولر چاپ می کنم چاپ می کنه ولی تو view اون پیغام رو می ده . تو انجمنش بعضی گفتن تو تابع index این مشکل پیش میاد اگه مثلا تو view قبل چاپ متغیر یه @ بگذاری درست می شه می شه .
یا اصلا یه تابع دیگه بنویسی . منم این کار رو کردم نشد.
خیلی جالبه که تو انجمن خودش جواب درست و حسابی ندادن .
می خواستم بپرسم واسه شما هم این مشکل هست ؟
اینم لینک انجمنش :
http://codeigniter.com/forums/viewthread/71468/
سوال اصلی تر اینجاست :
در هنگام کار با فریمورک ها اگر به یه همچین چیزایی برخورد کنیم آیا دستمان در پوست گردو نمی ماند ؟ چطور باید با مشکل رو به رو شویم و آن را بررسی کنیم ؟ اصلا از کجا باید بررسی کنیم ؟ اگر وسط یه پروژه گیر کنیم تکلیف چیست ؟ من نگرانی هام از استفاده از فریمورک اینهاست .
لطفا پاسخ بدید
  پاسخ
تشکر شده توسط :
#2
خب اینکه ساده است شما توی VIEW از متغییری استفاده کردی که توی کنترلر بهش مقدار ندادی دیگه !
نقل قول:در هنگام کار با فریمورک ها اگر به یه همچین چیزایی برخورد کنیم آیا دستمان در پوست گردو نمی ماند ؟
پوست گردو چرا؟
وقتی خودش دیباگ میکنه و همه چیو نشون میده ، فقط کافیه بررسی کنیش .
profiler رو فعال کن تا ببینی داری چیکار میکنی .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#3
رضا جان اون شخصی که اون کد رو گذاشته بود اشتباه کرده بود و تو آخرین پست صفحه هم گفت که اشتباهش چی بود . ولی من مثال خود سمپل رو گذاشتم و خطا داد

این مال پست اول بود . دقت کن :
نقل قول:خیلی جالب بود اینکه دقیقا از مثال خودش استفاده کردم . تازه اون متغیر رو که تو خود کنترولر چاپ می کنم چاپ می کنه ولی تو view اون پیغام رو می ده
  پاسخ
تشکر شده توسط : Reza
#4
اما در کل من یه دو ماهی میشه رفتم سراغ ci دو تا پروژه معمولی رو باهاش انجام دادم .
تا حالا مشکل خاصی نداشتم .

البته قبلش بگم user_guideاش رو 3 بار از اول تا آخر خوندم بدون اینکه بهش نیاز پیدا کنم .

منظورمو میفهمی؟

یعنی اینکه بدونم حداکثر چه کارهایی میشه باهاش کرد .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : alri
#5
alri اشتباه می کنید
بهتر بود کدتون رو اینجا میذاشتید تا نشون بدم که اشتباه از شما بوده
ci مرگ نداره

اینو تست کنید، نتیجه رو هم بگید(3 تا فایله)
کد پی‌اچ‌پی:
<?php

##################################################
# Applications/Controllers/Blog.php
class Blog extends CI_Controller
{
    function 
__construct()
    {
        
parent::Controller(); # Base controller
    
}

    public function 
index()
    {
        
$MyVariable['MyVarName'] = 'MyVarValue';
        
$MyVariable2['MyVarName2'] = 'MyVarValue2';
        
$this->load->view('MyBlogView'$MyVariable); # In Applications/Views/MyBlogView.php
    
}
}


##################################################
# Applications/Config/Routes.php
$route['default_controller'] = 'Blog'# In Applications/Controllers/Blog.php


##################################################
# Applications/Views/MyBlogView.php
{MyVarName}
{
MyVarName2}
<?
php

echo $MyVarName;
echo 
$MyVarName2
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : Reza
#6
نقل قول:ci مرگ نداره
اینو خوب اومدیBig Grin

بعد اینکه مشکل حل شده توی اون لینکی که داده .Dodgy
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#7
نقل قول:بعد اینکه مشکل حل شده توی اون لینکی که داده
زود تر از من پست زدی

چطوری حل شده؟
اون لینک رو ندیدم
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : Reza
#8
ypy عزیز چشم کد رو تست می کنم . ولی کد منم خیلی با این فرق نداره یه متغیر آرایه ای رو می فرسته به view
راستی اینی که می گی مرگ نداره قبول دارم چون بالخره چندین و چند بار تست شده و کلا اگر بخواهیم باگ یا مشکل رو در نظر بگیریم بالاخره تو لینوکس و ویندوز هم باگ هست و این دلیل بر اون نمی شه که ما با اونها کارنکنیم ولی الانم داره می گه undifined variable و من کاری نمی تونم بکنم . همین الان میرم تست ولی در کل این قضیه یه مقدار حساسه که من یه پروژه رو تا انتها پیش ببرم و بعد یه همچین اتفاقی بیفته که نتونم حلش کنم.

دوستان یه نگاه دوباره ای که به داکیومنتش کردم . بخش view فهمیدم که ایراد کار من کجاست
اونجایی بود که مثلا تو کنترولر می گفتیم :
کد پی‌اچ‌پی:
$data['name']="ali"
بعد من گفتم آرایه هست دیگه تو view هم بنویسم :
کد پی‌اچ‌پی:
echo  $data['name'
بعد می گفت data$ وجود نداره
بعد که دوباره دیدم دیدم که اندیس آرایه رو متغیر می کنه . یعنی باید می نوشتم:
کد پی‌اچ‌پی:
echo $name 
چه قدر بد که نشد همون رفتار آرایه رو داشته باشه

نقل قول:لبته قبلش بگم user_guideاش رو 3 بار از اول تا آخر خوندم
فکر کنم منم باید بخونم

راستی حالا که افتادم رو دور انتخاب kohana رو هم تست می کنم به نظر چیز رادست تری میاد .
  پاسخ
تشکر شده توسط :
#9
آرایه هم میشه .
کد پی‌اچ‌پی:
$data['posts']['id'] = 1;
$data['posts']['title'] = 'عنوان پست'
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : alri


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان