زمان جاری: 2012/05/25, 04:36 PM خوش آمدید مهمان گرامی! (ورودعضویت)



مفهوم این مسیربابی چیه؟


ارسال موضوع  ارسال پاسخ 
  • 1 رای - 1 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رتبه موضوع:
 
مفهوم این مسیربابی چیه؟
نویسنده پیام
neotek آفلاین
عضو جدید
*

ارسال‌ها: 4
تاریخ عضویت: Oct 2011
رتبه: 0
تشکر: 2
0 بار تشکر شده در 0 پست
ارسال: #1
مفهوم این مسیربابی چیه؟
با سلام
می خواستم بدونم مفهوم این کد چیه؟
کد PHP:
Router::connect('/:controller/:id', array('action' => 'view'), array('id' => '[0-9]+') ); 

با تشکر
2011/10/15 02:18 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
iraitc آفلاین
آریو برزن
**

ارسال‌ها: 57
تاریخ عضویت: Sep 2011
رتبه: 0
تشکر: 21
30 بار تشکر شده در 22 پست
ارسال: #2
RE: مفهوم این مسیربابی چیه؟
کار روتر فراخوانی کنترولر از طریق url درخواست است و این تکه کد داره به روتر می فهمونه که اگر آدرسی به اینصورت وارد شد

http://localhost/cake/X/Z

x: نام یک کنترل میباشد .
y: مقدار یک پارامتر بنام id میباشد . (و از نوع عددی )

و (کنشی )که در کنترل X صدا زده خواهد شد (view) نام دارد .


البته شما در این حالت فقط میتونی از اکشن view تو برنامت استفاده کنی که اگر بخوای این حالت رو از بین ببری
کد PHP:
Router::connect('/:controller/:action/:id', array('action' => ':action'), array('id' => '[0-9]+') ); 

و اگر بخواهی مقادیر دیگه ای هم به کنترلرت پاس کنی

کد PHP:
Router::connect('/:controller/:action/:id/*', array('action' => ':action'), array('id' => '[0-9]+') ); 
(آخرین تغییر در این ارسال: 2011/10/15 05:26 PM توسط iraitc.)
2011/10/15 05:19 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : neotek
neotek آفلاین
عضو جدید
*

ارسال‌ها: 4
تاریخ عضویت: Oct 2011
رتبه: 0
تشکر: 2
0 بار تشکر شده در 0 پست
ارسال: #3
RE: مفهوم این مسیربابی چیه؟
iraitc عزیز ممنون از پاسخت
پس در واقع اگه من درست متوجه شده باشم طبق این کد توی url لازم نیست action رو وارد کنیم چون توی روتر تعریف شده که به view ارسال بشه.

بعد یه سوال دیگه اگه من مقدار رو به شکل زیر توی url بنویسم

کد PHP:
http://localhost/controller/123a 

یعنی مقدار id=123a تعریف کنم اونوقت چه اتفاقی می افتد بابت این قسمت از کد
کد PHP:
array('id' => '[0-9]+'
که گفته id باید از نوع عددی باشه
منظورم اینکه error میده یا ...
2011/10/15 07:20 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
iraitc آفلاین
آریو برزن
**

ارسال‌ها: 57
تاریخ عضویت: Sep 2011
رتبه: 0
تشکر: 21
30 بار تشکر شده در 22 پست
ارسال: #4
RE: مفهوم این مسیربابی چیه؟
بله درسته


نقل قول:یعنی مقدار id=123a تعریف کنم اونوقت چه اتفاقی می افتد بابت این قسمت از کد

کد PHP:
کد PHP:
array('id' => '[0-9]+'
که گفته id باید از نوع عددی باشه
منظورم اینکه error میده یا ...

اگر پروژتون در حالت توسعه باشه یعنی
کد PHP:
Configure::write('debug',2); 

بهتون پیغام Missing Controller میده یعنی کنترول مورد نظر پیدا نشده .
اگر پرژتون تو حالته تهیه و اجرا باشه یعنی کانفیگور debug برابر 0 باشه بهتون خطای 404 میده .
(آخرین تغییر در این ارسال: 2011/10/15 11:12 PM توسط iraitc.)
2011/10/15 10:53 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : neotek
neotek آفلاین
عضو جدید
*

ارسال‌ها: 4
تاریخ عضویت: Oct 2011
رتبه: 0
تشکر: 2
0 بار تشکر شده در 0 پست
ارسال: #5
RE: مفهوم این مسیربابی چیه؟
برای من هیچ پیغام خطایی نداد حتی با دستور
کد PHP:
echo $this->params['id']; 

مقدار رو برام چاپ کرد با اینکه مقدار debug هم 0 و هم 2 قرار دادم
به نظرت علت چیه؟
2011/10/16 02:01 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
parsig آفلاین
Super Moderator
******

ارسال‌ها: 323
تاریخ عضویت: Jan 2010
رتبه: 6
تشکر: 131
357 بار تشکر شده در 179 پست
ارسال: #6
RE: مفهوم این مسیربابی چیه؟
کار خاصی نمی کنه . این ریگولار اکسپرشن میاد ورودی رو فیلتر می کنه و کارکتر های مجازش رو رد می کنه .

[تصویر: ubuntu2_userbar.gif]
یک برنامه نویس
آنکه مست آمد و دستی به دل ما زد رفت ... در این خانه ندانم به چه سودا زد و رفت
2011/10/16 04:26 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
ghasem.fattahpour آفلاین
Super Moderator
******

ارسال‌ها: 235
تاریخ عضویت: Aug 2010
رتبه: 7
تشکر: 177
241 بار تشکر شده در 114 پست
ارسال: #7
RE: مفهوم این مسیربابی چیه؟
با احترام حرف parsing کامل درسته شما می تونید جهت مطالعه مطالب بیشتر به دو لینک زیر مرا جعه کنید.

آنچه می نویسم نشانه دانایی من نیست، نشانه آنچه می دانم است.
---------------------------------------------------------------------------
2011/10/17 01:02 AM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
neotek آفلاین
عضو جدید
*

ارسال‌ها: 4
تاریخ عضویت: Oct 2011
رتبه: 0
تشکر: 2
0 بار تشکر شده در 0 پست
ارسال: #8
RE: مفهوم این مسیربابی چیه؟
نقل قول:کار خاصی نمی کنه . این ریگولار اکسپرشن میاد ورودی رو فیلتر می کنه و کارکتر های مجازش رو رد می کنه .
منظورم من همینه پس اگه قراره ورودی رو فیلتر بکنه چه جوری این کار انجام میشه نه خطایی میده و نه convert to int میکنه در واقع عین همون ورودی رو به action ارسال می کنه حداقل این توی سیستم من که اینجوریه.
نقل قول:با احترام حرف parsing کامل درسته شما می تونید جهت مطالعه مطالب بیشتر به دو لینک زیر مرا جعه کنید.
http://book.cakephp.org/view/948/Defining-Routes
http://book.cakephp.org/view/949/Passing...-to-action

اتفاقا من دارم طبق سر فصل book.cakephp.org آموزش می بینم که به این مورد برخوردم

از حوصله دوستان تشکر می کنم بابت راهنمایی
2011/10/17 12:30 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 993
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 402
873 بار تشکر شده در 561 پست
ارسال: #9
RE: مفهوم این مسیربابی چیه؟
نقل قول:منظورم من همینه پس اگه قراره ورودی رو فیلتر بکنه چه جوری این کار انجام میشه نه خطایی میده و نه convert to int میکنه در واقع عین همون ورودی رو به action ارسال می کنه حداقل این توی سیستم من که اینجوریه.

مطمئن باشید فیلتر میکنه. اما وقتی دارید میگید باز روتر مقادیر رو به اکشن پاس میده. این ممکنه به خاطر سایر روتر هایی باشه که بعد یا قبل از این روول تعریف کرده باشید.
2011/10/17 07:43 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
ارسال موضوع  ارسال پاسخ 


پرش در انجمن: