آموزش مقدماتی لاراول - انتقال داده به viewها
خب تا اینجا با نحوه راه اندازی و تعریف مسیرها در لاراول آشنا شدیم و دیدیم که چطور میشه با کمک viewها در لاراول مسیرهای متعدد رو برای وب سایتمون تعریف کنیم. در ادامه و در این پست میخوام نحوه ارسال داده به مسیرها از طرف سرور رو آموزش بدم که بسیار مهمه، پس با من همراه باشید!!!
در ابتدا یک view دیگه به نام users رو داخل دایرکتوری resource/internal ایجاد کردم.


حالا برای اینکه این view در دسترس باشه باید یک مسیر دسترسی برای اون تعریف کنیم. برای اینکار همانطور که قبلا هم گفته شد وارد web.php میشیم و یک مسیر مانند زیر ایجاد میکنیم. فقط توجه داشته باشید که از فرم ساده قبلی نمیشه اینجا استفاده کرد چون قراره دیتا برای view ارسال کنیم.
Route::get('users', function () {
return view('internal.users'); // or view('internal/users')
});
یه نکته دیگه هم مسیردهی به تابع view هست. همانطور که در بالا مشاهده میکنید چون view مورد نظر ما داخل یک فولدر به نام internal بود باید این مسیر رو هم وارد کنیم. توجه کنید ما دراینجا میتونیم از شکل مرسوم آدرسدهی که احتمالا تا حالا استفاده کردید هم میشه استفاده کنیم مثه path/file
یعنی بجای .
از /
استفاده بشه ولی حرفهای تر اینه که .
رو در تعاریف خودمون بکار ببریم خروجی نهایتا بصورت زیر هست:


خب حالا بریم سر وقت ارسال داده به view.
برای این منظور از پارامتر دوم تابع کمکی view استفاده کنیم. با کمک پارامتر دوم این تابع میتوانیم یک آرایه از دادههای خود را با یک کلید معین برای view مورد نظر ارسال کنیم. توجه داشته باشید که این کلید (من در اینجا users
استفاده کردم) در داخل view باید صدا زده شود تا بتوانیم از داده ارسال شده استفاده کنیم:


حالا برای نمایش داده در blade بصورت زیر عمل میکنیم:


خب سینتکس بالا هم مربوط به زبان php هست و حلقه سادست که با کمک echo خروجی رو در قالب لیست برمیگردونه! اما اگر قرار باشه از زبان php به این شکل در viewهامون استفاده کنیم پس blade به چه دردی میخوره 😉😉
همانطور که پیشتر گفتم blade یک موتور مترجم که با یک سینتکس بسیار روانتر فایلهای view ما رو در زبان php ترجمه میکنه و قابلیتهایی رو داره که به خوانایی کدهای ما بسیار کمک میکنه.
در آدرس زیر میتونید با این سینتکس آشنا بشید یا اینکه صبر کنید من توی این دوره هر چی لازم داشته باشید رو بگم 😊
اولین نکته توی این سینتکس اینه که هر دستوری مثه if , for و ... با یک @
شروع میشه و در انتها هم باید اون دستور بسته بشه!
@foreach ($users as $user)
<p>This is user {{ $user }}</p>
@endforeach
در بین دستورات blade از میتونیم بسادگی از تگهای html استفاده کنیم منتهی اگر قراره دادهای رو نمایش بدیم مانند بالا باید درون {{ }}
قرار بدیم. همین!
به مثال زیر دقت کنید برای دستورات شرطی بصورت زیر عمل میشه:
@if (count($records) === 1)
I have one record!
@elseif (count($records) > 1)
I have multiple records!
@else
I don't have any records!
@endif
باقی سینتکس هم بمرور خواهم گفت...
حالا برگردیم به مثال خودمون و کد نمایش کاربرهارو با سینتکس blade بصورت زیر بازنویسی کنیم:


اینطوری خیلی خواناتر و نوشتن دستورات هم راحتتررره! نهایته هم خروجه بصورت زیر در خواهد آمد:


خب به همین راحتی تونستیم داده مورد نظر خودمون رو به view ارسال کنیم. اما نکته دیگه که بوجود میاد اینه که اگر قرار باشه ارسال داده رو از طریق route ها انجام بدیم اینطوری برای یک صفحه مثل نمایش محصول دیجیکالا که خیلی داده داره، فایلهای route ما بسیار شلوغ و کثیف میشن! اینجاس که کنترلها تعریف میشن که عملیات دریافت، پردازش و ارسال داده بین کاربر (کلاینت) و سرور رو مدیریت میکنند.
خب تا همینجا کافیه! یادتون باشه حتما موارد رو تمرین کنید! و اگر از مطالب لذت میبرید اونا رو به اشتراک بگذارید.
در مطلب بعدی کنترلرها رو بررسی خواهم کرد.