آموزش لاراول: بررسی کامل Request ها در لاراول
آموزش لاراول (Laravel) زمان مطالعه: 6 دقیقه تاریخ انتشار: 1 سال قبل

آموزش لاراول: بررسی کامل Request ها در لاراول

در قسمت قبل، Controller در لاراول را بررسی کردیم و در این قسمت از آموزش لاراول به بررسی Request ها در لاراول می پردازیم. در هنگام استفاده و پیاده سازی پروژه های خود با لاراول شما باید کار با درخواست ها در لاراول را به خوبی بلد باشید و آشنایی کاملی با آن داشته باشید در ادامه همراه هیرود باشید تا بهتون بگیم Request لاراول چیست؟

 

Request لاراول چیست؟

وقتی که شما یک سایت را باز می کنید یا از یک اپلیکیشن استفاده می کنید درواقع مرورگر یا آن اپلیکیشن درخواست ها یا همان Request هایی را سمت سرور آن سایت یا برنامه ارسال می کند. حالا اگر سمت سرور با زبان PHP و فریمورک لاراول توسعه داده شده باشد، این درخواست توسط Laravel از طریق Route ها دریافت و مدیریت می شود و در صورت نیاز پاسخ برای کلاینت که همان سایت یا اپلیکیشن ماست برمی گردد. با استفاده از Request ها می توانیم داده ها را به صورت پویا دریافت یا ارسال کنیم.

 

دسترسی به HTTP Request در لاراول

برای دستیابی به نمونه از یک HTTP Request در Laravel از طریق تزریق وابستگی، باید مانند مثال پایین Request را به عنوان پارامتر ورودی در متدهای کنترلر لاراول خود دریافت کنیم.

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Store a new user.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $name = $request->input('name');

        //
    }
}

 

دریافت پارامترهای ورودی از طریق Route در کنترلر لاراول

زمانی که از طریق پارامتر ورودی در متدها کنترلر خود در لاراول قصد دارید یک پارمتر را از Route دریافت کنید باید آن پارامتر را مانند مثال زیر در Route لاراول خود تعریف کنید.

Route::put('user/{id}', '[email protected]');

و سپس در ادامه برای دریافت آن پارامتر در Controller باید به روش زیر عمل کنید.

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Update the specified user.
     *
     * @param  Request  $request
     * @param  string  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
        //
    }
}

 

دسترسی به Request در بدنه Route لاراول

برخی از مواقع شاید نخواهید از کنترلرها استفاده کنید، در اینصورت برای دریافت Request در خود همان Route می توانید به صورت زیر عمل کنید.

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {
    //
});

 

دریافت URL و Method یک Request در لاراول

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

// Without Query String...
$url = $request->url();

// With Query String...
$url = $request->fullUrl();

همچنین اگر می خواهید HTTP verb یک درخواست را دریافت یا چک کنید میتوانید از روش زیر استفاده کنید.

$method = $request->method();

if ($request->isMethod('post')) {
    //
}

 

دریافت داده از Request ها در لاراول

شما می توانید تمام داده های ورودی یک Request را با استفاده از متد all در قالب یک آرایه دریافت کنید.

$input = $request->all();

همچنین اگر قصد دارید فقط  یک فیلد را به صورت سفارشی دریافت کنید می توانید از متد input استفاده کنید.

$name = $request->input('name');

 

دریافت query از Request ها در لاراول

شما می توانید با استفاده از دستورهای زیر اقدام به دریافت تمام یا بخشی از query یک درخواست نمایید.

$query = $request->query();
$name = $request->query('name');

 

دریافت داده های JSON از Request ها در لاراول

زمانی که قصد دریافت یک داده در قالب JSON را دارید می توانید از مت input استفاده کنید و برای دریافت داده های تو در تو می توانید از Dot برای دریافت شاخه های زیرین استفاده کنید.

$name = $request->input('user.name');

 

چک کردن وجود مقدار ورودی در Reuqest ها

حتما برخی مواقع نیاز خواهید داشت تا وجود یک مقدار در یک درخواست را چک کنید. می توانید با استفاده از متد has به ساده ترین شکل ممکن این کار را انجام دهید. اگر مقدار وجود داشته باشد true و در غیر اینصورت false بر می گردد.

if ($request->has('name')) {
    //
}

برای بررسی چند فیلد می توانید. فیلدها را در قالب آرایه بنویسید

if ($request->has(['name', 'email'])) {
    //
}

 

Old input لاراول

در لاراول برای بازیابی داده ورودی که به صورت flash در درخواست قبلی ارسال شده است می توانید از متد Old استفاده کنید.

$username = $request->old('username');

همچنین میتوانید از Old در blade لاراول در فرم ها استفاده کنید تا درصورت ارسال نشدن صحیح یک فرم مجدد بتوانید داده ورودی کاربر را بازیابی کنید و نمایش دهید.

<input type="text" name="username" value="old('username')">

 

دریافت Cookie از Request ها در لاراول

با استفاده از متد cookie میتوانید کوکی مورد نظر خود را از درخواست دریافت کنید.

$value = $request->cookie('name');

همچنین می تونید از facade cookie استفاده کنید.

use Illuminate\Support\Facades\Cookie;

$value = Cookie::get('name');

 

دریافت فایل جهت آپلود از Rqueust در لارول

جهت دریافت فایلی که توسط یک درخواست به سمت سرور ارسال شده است می توانید از متد file استفاده کنید یا نام فایل مستقیما از request دریافت کنید.

$file = $request->file('photo');

$file = $request->photo;

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

if ($request->hasFile('photo')) {
    //
}

 

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

امتیاز به این مقاله فراموش نشه
میانگین امتیاز 5 از 5 ، کل امتیازات: 1
امیر اشرفی
نویسنده: امیر اشرفی

امیر اشرفی هستم مدیر و بنیان گذار آکادمی هیرود، حدود 10 سالی میشه که در حوزه برنامه نویسی و توسعه وب و موبایل فعالیت میکنم و تونستم تجربه خوبی در این حوزه بدست بیارم. یکی از علاقه هام انتقال تجربه هایی که در اختیار دارم به دیگرانه و باعث میشه حالم خوب بشه و اشتیاق یادگیریم افزایش پیداکنه، در واقع هیرود نتیجه حال خوبیامه :)

دوره های قهرمانی پیشنهادی

اولین قدم برنامه نویسی

اولین قدم برنامه نویسی

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

سبد خرید

سبد خرید شما خالی است.

پیش به سوی قهرمانی