الفرق بين المراجعتين ل"Laravel/requests"
تسنيم-ولهازي (نقاش | مساهمات) (أنشأ الصفحة ب' == الطلبات HTTP == == الوصول إلى الطلب == عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك لل...') |
(لا فرق)
|
مراجعة 22:57، 8 أكتوبر 2018
الطلبات 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();