Laravel/requests

من موسوعة حسوب
مراجعة 22:57، 8 أكتوبر 2018 بواسطة تسنيم-ولهازي (نقاش | مساهمات) (أنشأ الصفحة ب' == الطلبات HTTP == == الوصول إلى الطلب == عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك لل...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الطلبات HTTP

الوصول إلى الطلب

عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك للحصول على نسخة الطلب HTTP الحالي عبر إضافة الاعتماديّة. ستُضاف نسخة الطلب الوارد تلقائيًّا بواسطة حاوي الخدمات:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * خزّن مستخدمًا جديدًا
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $name = $request->input('name');

       //
    }
}

إضافة الاعتماديّات ومعاملات المسار (Dependency Injection & Route Parameters)

عليك إدراج مُعاملات مسارك بعد اعتماديّاتك الأخرى إن توقّع تابع وحدة التحكّم أيضًا إدخالًا من مُعاملة مسار. على سبيل المثال، إن عُرّف مسارك كما يلي:

Route::put('user/{id}', 'UserController@update');

لا يزال بإمكانك تلميح إلى النوع Illuminate\Http\Request والوصول إلى المعامل id بتعريف تابع وحدة تحكّمك كما يلي:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * تحديث المستخدم المحدد.
     *
     * @param  Request  $request
     * @param  string  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
       //
    }
}

الوصول إلى الطلبات عبر المسارات Closure

تستطيع أيضًا التلميح إلى نوع الصنف Illuminate\Http\Request في النطاق المغلق Closure للمسار. سيضيف حاوي الخدمات الطلب الوارد تلقائيًا في النطاق المغلق Closure عند تنفيذه:

use Illuminate\Http\Request;

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

مسار الطلب والتابع

تُوفّر النسخة Illuminate\Http\Request مجموعةً متنوعةً من الدوال لفحص الطلب HTTP لتطبيقك وتوسيع الصنف Symfony\Component\HttpFoundation\Request. سنناقش أدناه بعضًا من أهم تلك الدوال.

استرداد مسار الطلب

يعيد التابع path معلومات مسار الطلب. أي إن استهدف الطلب الوارد http://domain.com/foo/bar، سيرد التابع foo/bar path:

$uri = $request->path();

يسمح لك التابع is بالتحقق من مطابقة مسار الطلب الوارد بنمط محدد. يمكنك استخدام الرمز * كحرف بدل (wildcard) عند استخدام هذا التابع:

if ($request->is('admin/*')) {
   //
}

استرداد عنوان الطلب

تستطيع استخدام التابع url أو fullUrl لاسترداد العنوان URL الكامل للطلب الوارد. سيرد التابع url العنوان URL بدون سلسلة الاستعلام النصيّة (query string)، بينما يحتوي التابع fullUrl سلسلة الاستعلام:

// بدون سلسلة الاستعلام ...
$url = $request->url();

// مع سلسلة الاستعلام ...
$url = $request->fullUrl();