آشنایی با Routing فریمورک Laravel در لاراول

دسته بندی: آموزش
زمان مطالعه: 1 دقیقه
۲۲ خرداد ۱۳۹۶

به نام خدا و سلام. در برنامه های وب اپلیکیشن یه قسمتی وجود داره برای کنترل و هدایت درخواست های کاربران که بهش میگن مسیر یابی . این مسیر یابی در واقع آدرس هایی رو تعریف میکنه که کاربر میتونه از اونها اطلاعات بخونه یا اطلاعات بفرسته. لاراول هم به عنوان یک فریمورک پیشرفته از یک سیستم routing قوی و ساده استفاده می کنه. در این جلسه با این بخش مهم از فریمورک لاراول آشنا میشیم.

:: توجه

این مطلب یک جلسه از آموزش لاراول مبتدی تا پیشرفته می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش لاراول مبتدی تا پیشرفته

چه امتیازی به این مقاله می دید؟
نویسنده
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

جلسات دوره

نظرات کاربران

خدابنده

این که لاراول فقط همه روت هایی که در فایل روت رجیستر شده ان رو هندل میکنه به نظرم رسید برای یه سیستم بزرگ فایل روت بایستی تعدا خط بالایی داشته باشه؟ همینطوره آیا همه روت در این فایله آیا داخلی هم کار میشه به کنترلری بره و داخلی روت ها در اون کنترلر تعریف بشه شاید نگهداری رو راحتتر کنه ؟ آیا همینطوره؟ یا همه روت ها فقط در این فایل انجام میشه؟
ممنون

کیوان علی محمدی

اکثر route ها در همین جا تعریف میشن و لاراول فقط دسته بندی کلی برای web و api ایجاد کرده. اما شما می تونید route ها رو به فایل های کوچیکتری بشکونید و ازش استفاده کنیدو مثلا می تونید در سرویس ها بیاید و فایل route تعریف کنید و بارگذاری کنید.

امین

سلام
1- تفاوت DATETIME و TIMESTAMP رو نفهمیدم! سرچ کردم نوشته بود که DATETIME مثلا بازه ی سالش رو میشه از 1000 تا 9999 در نظر گرفت و TIMESTAMP رو در بازه 1970 تا 2038 میشه در نظر گرفت ،خب بنظر شما بهتر نیست TIMESTAMP برای فیلدای تاریخمون انتخاب کنیم؟ چون قصدمون فقط تاریخ گرفتنه و تاریخ هم نمیتونه که بین 9999 یا 1000 باشه و معمولا بین بازه 1970 و 2038 هستش.
2- در تایم استمپ بازه سالمون بین 1970 الی 2038 هستش ، زمانی که سال از 2038 رد کنه وارد سال 2039 بشیم یعنی کار نمیکنه دیگه؟ چه مشکلی پیش میاد؟ برای برنامه هایی که با تایم استمپ مقدار دادیم در سال 2039 چه مشکلی پیش میاد و آیا برای جلوگیری از این کار بهتره که از DATETIME استفاده کنیم که محدودیت نداره یا اونزمان راه حلی پیدا میشه؟
3- DATETIME منطقه زمانی رو ذخیره نمیکنه ولی TIMESTAMP میکنه پس اگر بخوایم منطقه زمانی هم ذخیره بشه ولی سال 2039 رو مثلا داشته باشیم باید چیکار کنیم؟
ممنون

//DATETIME Range
‘1000-01-01 00:00:00’ to ‘9999-12-31 23:59:59’
//TIMESTAMP Range
‘1970-01-01 00:00:01’ UTC to ‘2038-01-19 03:14:07’ UTC
کیوان علی محمدی

سلام
1 – ما معمولا تاریخ از نوع datetime رو ترجیح میدم چون برای محاسبات تاریخی و کوئری هایی از این نوع خیلی خیلی بهتره.
2-دقیقا این مشکلی هستش که سیستم های unix با این timestamp پیدا میکنن و در اون سال 2038 این زمان بندی مشکل پیدا میکنن. حتما حتما از همون نوع date یا datetime استفاده کنید.

امین

ببخشید در رابطه با این سوال
3- DATETIME منطقه زمانی رو ذخیره نمیکنه ولی TIMESTAMP میکنه پس اگر بخوایم منطقه زمانی هم ذخیره بشه ولی سال 2039 رو مثلا داشته باشیم باید چیکار کنیم؟

Masoud Azimi

با سلام و احترام..
بنده در آدرس دهی به مشکل خورده ام …
حتی وقتی Die & Dump میکنم بازهم در صفحه اصلی فایل welome.blade اجرا میشه …

Route::get(‘/’, function () {
    dd("Dumping");
});
کیوان علی محمدی

سلام. بهتره روند رو یکبار از اول بررسی کنید

متین نجاری

سلام استاد عالی بود واقعا خسته نباشید
فقط من یه سوال کوچیک داشتم
میدونم خارج از درسه ولی لطف میکنید اگر جواب بدید
اونم اینه که تابع ()dd برای چی استفاده میشه
باسرچ کردن چیزی دستگیرم نشد

mahdi98

با تشکر از شما ولی این قسمت ضعیف بود نمی چرا دوستان میگن عالی.

mahdi98

انتظار داشتم که مباحث روت کامل مطرح بشه در قسمتی که مطعلق به اون و نگید که موارد پیشرفته رو در طول دوره خواهیم گفت.

کیوان علی محمدی

چرا ضعیف بود؟

mahdi98

با سلام. توی آموزش گقتید که آدرس ها متغیر ها رو به همون شکل که تعریف شدن به کالبک فانکشن یا متود کنترولر پاس میده ولی در نسخه 5.6 لاراول اینطوری نیست. حالا نمی دونم در نسخه 5.3 اینطوری هست یا نه ولی یه برسی کنید. توی نسخه 5.6 بر اساس ترتیب هست مثل اولین متغیر روت به اولین پارامتر فانکشن پاس داده میشه و دومین متغیر به دومین پارامتر حالا چه نامشون یکی باشه چه نه.
ممنون

کیوان علی محمدی

در نسخه 5.3 در این مورد صحبتی نشده بود. در آموزش ما هم طبق همون مورد پیاده سازی کردیم.

dpfm32

سلام استاد ، خسته نباشید .
یه سوال داشتم ، در انتهای ویدئوی این جلسه شما گفتید میتونیم پارامتر id رو به شکل {?id} بصورت آپشنال در بیاریم ( توی بحث روتینگ )
وقتی id رو آپشنال تنظیم می کنیم ، توی فایل کنترلر چطوری تشخیص بدیم که اون متغیره ارسال شده یا خیر ؟
چون وقتی روی آپشنال قرارش میدیم ، وقتی چیزی توی id وارد نکنیم ، توی کنترلر ارور میگیره میگه :
“Type error: Too few arguments to function App\Http\Controllers\HelloController::index(), 0 passed and exactly 1 expected”

حامد

ممنون از راهنماییتون ، مشکل حل شد .
من متغیر id$ رو پاس می دادم به متدد کنترلر ، اما باید به شکل id = null$ تعریفش میکردم که اگر خالی بود ارور نگیره .

کیوان علی محمدی

سلام دوست عزیز. خوب شما باید اسم متغییر رو در آرگومان های متد کنترلر وارد کنید. اگر مقداری وارد نکنید اون آرگومان مقدار null میگیره.

مجید

استاد من قبلا فایلهای را راحت با firefox دانلود می کردم ولی جدیداً فایلها آموزش فقط پخش میشه و دانلود نمیشه
کش و کوکی ها را هم پاک کردم مررورگم هم آپدیت است: 53.0.3 (64-bit)
می تونید راهنمایی کنید که چطور ویدئوها را دانلود کنم؟

کیوان علی محمدی

از نرم افزار IDM استفاده کنید.

محمدرضا

عالی بود واقعاا
خسته باشید …

کیوان علی محمدی

ممنون و موفق باشید.

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

شما هم چنان می توانید سوالات خود را در این قسمت بپرسید اما اولویت پاسخ گویی با دانشجویانی است که بازه پشتیبانی فعال دارند.

نیاز به لاگین

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